Programar tareas en GNU/Linux con el comando Cron.

En el regla agente Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos que significa «tiempo».

Cron es un programa daemon que permite ejecutar otros programas o scripts en un lapso de tiempo y una periodicidad especificada por el usuario.

Su comportamiento esta regulado por su archivo de configuración, que se llama crontab. Cada usuario del regla posee un archivo crontab personalizado y sólo el usuario root puede alterar el archivo crontab de otro usuario. Si se desea agregar un archivo crontab, es necesario entrar («logearse» ) primero como ese usuario.

Cron es impulsado por un cron, un archivo de configuración que especifica comando shell para ejecutarse periódicamente a una hora específica. Los archivos crontab son almacenados en donde pemanecen las listas de trabajos y otras instrucciones para el demonio cron. Los usuarios habilitados para crear su fichero crontab se especifican en el fichero cron.allow. De manera análoga, los que no lo tienen permitido figuran en /etc/cron.d/cron.deny, o /etc/cron.deny, dependiendo de la presentación de Unix.

Cada línea de un archivo crontab representa un trabajo y es compuesto por una palabra CRON, seguida por un comando shell para ejecutarse. Algunas implementaciones de cron, tal como en la habitual BSD 4a edición escrita por Paul Vixie, e incluido en muchas distribuciones Linux, agrega una especificación de nombre de usuario dentro del formato como un sexto campo, como quién ejecutará el trabajo especificado (sujeto a la existencia de un usuario en /etc/passwd y permisos autorizados). Esto solo es permitido en el regla crontab (/etc/crontab y /etc/cron.d/*), no en otros donde son asignados cada usuario es asignado a una configuración.
Para el «día de la semana» (campo 5), ambos 0 y 7, son considerados Domingo, a través de algunas versiones de Unix tal como AIX no toma como vàlido el «7» en el man. Mientras que cuando el trabajo es ejecutado normalmente cuando fueron especificados los campos tiempo/fecha, todos coinciden con la hora y fecha actual, esto es una excepción.

Si tanto el «día del mes» como «día de la semana» son restringidos (no son » * » ), entonces o el «día del mes» (campo 3) o el «día de la semana» (campo 5) debe armonizar con el día actual.
Un usuario sólo puede hacer uso de crontab si su nombre aparece en:

        /etc/cron.allow
Si este archivo no existe, el usuario puede emplear crontab a menos que su nombre aparezca en:
   

    /etc/cron.deny.
La sintaxis del archivo crontab es muy clara y rígida. Hay seis campos por cada linea, y cada campo está separado por un espacio. Los primeros cinco campos específican el momento fiel de ejecución, mientras que el sexto campo es el propio comando o script que se ejecutará. Los primeros cinco campos son:

    # m h dom mon dow /commando/a/ejecutar
    – – – – – –
    | | | | | |
    | | | | | +—– día de la semana (0 – 6) (dom = 0)
    | | | | +——- mes (1 – 12)
    | | | +——— día del mes (1 – 31)
    | | +———– hora (0 – 23)
    | +————- minuto (0 – 59)
    +—————- espacio vacío (no poner nada)

El asterisco * en alguno de los campos se entenderá como todos los valores posibles. Por lo tango, un * en el campo mes se entenderá como que el comando se ejecuta todos los meses en el momento indicado en el sobrante de los campos.

    sudo service cron status

Debera aparecernos algo como esto:

    cron start/running, process 1195

Pogramar el apagado del regla el 15 de diciembre a las 3:00 PM

        sudo vi /etc/crontab
    0 15 15 12 * root /sbin/shutdown

Programar la ejecución de un script 4 de febrero a las 7:15 AM
  

    sudo vi /etc/crontab 15 7 4 2 * root /home/usuario/script.sh
Más opciones del comando cron:

    man cron crontab

Fuentes de Información

Programar tareas en GNU/Linux con el comando Cron.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *