Tareas en el Cron

CRON es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o scripts a intervalos regulares (por ejemplo, cada minuto, día, semana o mes).

Objetivo:

Crear una actividad en el cron del sistema que se ejecute cada 2 hrs (en este caso se ejecuta un script para actualizar los dns) y envie un mail con el output de la actividad.  Después se realizará una modificación para que guarde la salida en un log y deshabilitar el envio del mail.

Procedimiento:

Se debe crear un archivo (updateip en este caso) en el "/etc/cron.d"

< sudo nano /etc/cron.d/updateip

Se debe definir el siguiente contenido.

SHELL=/bin/bash
HOME=/tmp
MAILTO="fernando@sismonda.com.ar"
0 */2 * * *     root    /opt/updateip/updateip.sh 2>&1 >> /var/log/updateip.log

Donde:

  • SHELL define el intérprete de comandos a utilizar.
  • HOME la ubicación donde se va a ejecutar el script.
  • MAILTO a quien envia el mail con el output de la ejecución del script

Los tiempos de ejecución (o momentos) se definen segun la siguiente tambla.

##########################################################
#minute (0-59),                                          #
#|  hora (0-23),                                         #
#|  |  día del mes (1-31),                               #
#|  |  |  mes (1-12),                                    #
#|  |  |  |  día de la semana (0-6 donde 0=Domingo)      #
#|  |  |  |  |       comandos                            #
##########################################################

Se puede usar comodines para un evento que se repite cada "x" tiempo.

Por ejemplo para que el script se ejecute cada "x" cantidad de minutos se debe definir la línea de la siguiente forma

*/x * * * *     root    /opt/updateip/updateip.sh 2>&1 >> /var/log/updateip.log

Donde "x" es un valór numérico.

También se pueden definir unidades en tiempos separados por comas.  Por ejemplo se quiere ejecutar el script a las 9, 15, 18 y 21 hrs.

0 9,15,18,21 * * *     root    /opt/updateip/updateip.sh 2>&1 >> /var/log/updateip.log

Para deshabilitar el envio del correo, se debe definir la variable MAILTO en nula.

MAILTO=""