Ubunlog Diego Germán González  

Cómo automatizar tareas con Anacron

Automatizando tareas con Anacron

En el artículo anterior les hablé de cron, un programa del sistema que ejecuta  tareas de manera automática en un momento determinado. Ahora veremos cómo automatizar tareas con Anacron. Anacron nos permite superar uno de los puntos débiles de Cron. Si el ordenador está apagado en el momento en el que debía realizarse la tarea, esta no se vuelve a realizar hasta que se vuelva a producir el momento del año y el ordenador está encendido.

En el caso de Anacron, cuando se vuelve a encender el ordenador, realiza aquellas tareas que quedaron pendientes .

Cómo automatizar tareas con Anacron

Cuando se inicia el ordenador, Anacron busca cuándo fue la última vez que se ejecutó una instrucción dada y la frecuencia con que se le dijo que debería realizarse. Al igual que lo que sucede con Cron, la lista de tareas pendientes se guarda en un archivo de texto llamado con el poco original nombre de anacrontab. Pero, hay una diferencia importante, en este caso la fecha se fija estableciendo un día, el retraso en minutos, el identificador del trabajo y el comando que se tiene que ejecutar.

Anacron verifica, para cada tarea, si se ejecuto en cierta cantidad de días.Esa cantidad de días es el período que se especifico para ese trabajo. Si no se ejecutó, Anacron espera la cantidad de minutos requeridos y lo hace. A continuación registra la fecha lo que le sirve de indicación para cuando volver a ejecutarlo.

Podemos encontrar anacron con su nombre o en el paquete cronie en las principales distribuciones.

Para ejecutarlo debemos especificar los siguientes parámetros:

-f: Ejecución de la tarea aunque no sea la fecha indicada.

-u: Cambia la fecha de los trabajos a la del día pero no los ejecuta.

-s: indica que una tarea se ejecuta cuando termina la anterior.

-n: Es como utilizar los parámetros -f y

-q: Si se usa con -d evita que se muestren los mensajes de error.

-t: Indica a Anacron donde encontrar la lista de tareas.

-T: Comprueba la configuración de la lista de tareas y muestra el mensaje de error en caso de ser necesario.

-S Especifica el directorio en el que se almacenan las marcas de tiempo.

En el archivo Anacrontab debemos agregar los siguientes parámetros

SHELL=/bin/bash: Especifica que debe utilizarse Bash como intérprete de comandos.

MAILTO= Después del signo igual indicamos una dirección de correo para que nos envié el reporte de errores. Aunque en distribuciones de escritorio no es necesario hacerlo.

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: Esto nos permite no tener que agregar la ruta a cada tarea.

La sintaxis de la tarea de Anacrontab es período retraso identificador del trabajo comando donde:

Período: Es la frecuencia con la que debe realizarse el trabajo. Puede indicarse comolapso ( @daily, @weekly, o @monthly para día, semana o mes) o con números (1 para día, 7 para semana, 30 para mes y cualquier número para un período cualquiera de días.
Retraso: Es la cantidad de tiempo de espera antes de empezar. Se expresa en minutos
Identificador del trabajo: Es un nombre asignado a la tarea para distinguirla de otras
Comando: Es el comando que debe correr anacron en el momento señalado.
También debemos crear un directorio para que ejecute las distintas tareas.

mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron

Esto crea los directorios donde se guardarán los scripts de ejecución diaria, semanal y mensual y el informe de la última ejecución de anacron.

Para indicarle que use estas carpetas:

anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron

Editamos el archivo de configuración desde la terminal

nano ~/.local/etc/anacrontab

Agregamos estas líneas:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Se pueden configurar otras dos variables

START_HOURS_RANGE: Para indicar que los trabajos deben iniciarse solo en un determinado lapso de tiempo.
RANDOM_DELAY: Establece el retrado aleatorio máximo

Con esto terminamos el breve repaso sobre dos útiles herramientas de línea de comandos para automatizar tareas en nuestro ordenador. En art́iculos posteriores veremos que hay aplicaciones gráficas que nos permiten también hacer lo mismo.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.