lunes, 22 de abril de 2013

Otra de CUPS

Sigo con las colas de impresión. Algunas de mis impresoras de red utilizan colas LPD. Vemos que periódicamente, al mandar grandes cantidades de trabajos quedan algunos sin imprimir. A pesar de haber configurado el manejo de errores.

Buscando en foros y listas de correo, encuentro otros con el mismo problema, que resolvieron agregando un parámetro en la URI de la impresora afectada: ?timeout=XX. Donde XX es la cantidad de segundos que debe esperar antes de entrar en timeout.

viernes, 5 de abril de 2013

Manejo de errores en una cola de impresion CUPS

En el trabajo tenemos varias colas de impresión basadas en CUPS. En varias de esas colas se envían trabajos en lote, de un día para el otro. varias veces uno de esos lotes de trabajos ha quedado detenido, necesitando una intervención para corregir el problema.

La política de errores por defecto en las colas de cups es detener la impresión, frente a un error. Esto se cambia editando el parámetro ErrorPolicy. Este parámetro tiene los siguientes valores posibles:
  • abort-job abortar el trabajo actual, continuar con el siguiente
  • retry-job reintentar el trabajo actual. Esta accion esta afectada por los parametros JobRetryInterval y JobRetryLimit, definidos en el cupsd.conf.
  • retry-this-job reintentar el trabajo actual, ad eternium.
  • stop-printer Detener la cola de impresion, conservar los trabajos para imprimirlos con posterioridad.
Mi problema lo resolví con la opción retry-this-job.

lunes, 25 de marzo de 2013

Script para bajar y subir TeamViewer

Por un tema puntual necesito acceso a un equipo remoto, via TeamViewer. No soy fanático de esta herramienta, reconozco su utilidad en determinados contextos. Para sacar el trabajo, sin comprometer la seguridad, decidí activar el teamviewer solo cuando se necesita.

Para esto me hice un script, que lo inicia y lo baja desde una consola, sin necesidad de estar logueado en la consola gráfica. Cuando surge la necesidad, te logueas al equipo por SSH y levantas teamviewer. Cuando termina lo bajas.

El listado del script:

#!/bin/sh
PATH="/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin"
# Display Variable might need customization.
DISPLAY=":0.0"

export PATH DISPLAY
# DAEMON location might change, depending on Linux distro.
TV_DAEMON='/etc/init.d/teamviewerd'
test -x ${TV_DAEMON} || exit 1
#
TV_EXE=$(which teamviewer)

case $(basename ${0}) in
    start-tvr)
        ${TV_DAEMON} start
        sleep 2
        ${TV_EXE} &
        ;;
    stop-tvr)
        for i in $(ps xa|grep -i -E '(teamviewer|services\.exe)'|grep -v grep |awk '{print $1}' ); do  kill $i; done
        ;;
    *)
        echo "USAGE (start-tvr|stop-tvr)" 

        exit 1 
        ;;
   esac
exit

Para instalar el script, copiarlo al servidor donde tenemos instalado teamviwer. Es necesario hacer dos symlinks al mismo, uno a start-tvr y el otro a stop-tvr . El script fue probado en SuSE Enterprise 11, puede necesitar cambios para otras distribuciones.

domingo, 17 de marzo de 2013

Actualizar Moodle en pocos pasos

He llevado adelante un par de actualizaciones en sistemas Moodle que administro. Una de las cosas que mas me gusta de moodle es su extensa y completa documentación. Su comunidad de usuarios tambien es de destacar, muy atenta y dispuesta a ayudar.
Trabajo Previo....
Previo a la actualización debemos evaluar el estado del sistema donde esta corriendo Moodle. Es importante tener claro donde está instalado, la versión de PHP que tenemos y la base de datos. 

La base de datos merece un capitulo aparte, a partir de la versión 1.9 moodle soporta PostgresSQL, MSSQL y Oracle, ademas de MySQL

Una vez hecho esto, podemos evaluar el camino a seguir en la actualización. Si tenemos una instalación muy vieja, seguramente necesitemos actualizar la versión de PHP y base de datos. Puede ser bueno actualizar todo el sistema operativo.
Respaldar
Previo a la actualización, se recomienda respaldar. Ese respaldo nos debería permitir volver a atrás, si algo sale mal. Tendríamos que respaldar el directorio moodle, el moodledata y la base de datos.
Actualizar
Actualizar el software consiste en remplazar el directorio Moodle actual, por la nueva versión. Para terminar la actualizacion, seguimos desde la web. 

Si estamos actualizando desde una versión muy vieja, anterior a la 1.9, se recomienda actualizar a la versión inmediatamente siguiente. hasta llegar a la ultima versión estable de la serie 1.9. Desde una versión 1.9  se puede actualizar a cualquier version de la serie 2, teniendo en cuenta la version de PHP requerida y las bases de datos soportadas.