martes, 12 de junio de 2007

El fichero crontab o Programador de tareas


Cada uno de los ficheros crontab de configuración
están formados por asignaciones de valores a
variables de entorno y una línea por actividad que
queramos programar su ejecución. Las líneas
en blanco, los espacios iniciales y los tabuladores se
ignoran.




Los comentarios en este fichero son líneas completas
cuyo primer carácter que no sea un espacio es un
carácter #.



Las línea de programación de tareas siguen un
formato estándar formada por cinco campos que
indican un instante de ejecución y la ruta del
fichero que hay que ejecutar.




Los campos que describen el instante de ejecución
son por orden:



minuto 0-59



hora 0-23




día del mes 0-31



mes 0-12 (o sunombre con las tres primeras letras en
inglés)



dia semana 0-7 (0 or 7 indica domingo, o su nombre con las
tres primeras letras en inglés)




Un campo puede contener:



Un un asterisco (*) para indicar todos los posibles
valores.



Un valor fijo para indicar un minuto, hora, día o
mes.



Un rango de valores, dos números separados por
guiones. Un rango puede terminar en /numero para indicar el
incremento.




Una lista de valores separados por comas.



Un valor */numero para indicar todos los valores con
incremento de "número".



Ejemplos




Vemos diversas formas de configurar la ejecución de
la orden /usr/bin/fetchmail:



Ejecutarlo a las 12 de la noche cada día









"computeroutput">0 0 * * * /usr/bin/fetchmail



Ejecutarlo a las 12 :15 de la noche cada día









"computeroutput">15 0 * * * /usr/bin/fetchmail




Ejecutarlo 15 después de cada hora exacta, a las y
cuarto









"computeroutput">15 * * * * /usr/bin/fetchmail



Ejecutarlo el día 1 del mes a las 6:30









"computeroutput">30 6 1 * * /usr/bin/fetchmail



Ejecutarlo cada dos día a las 6:30









"computeroutput">30 6 */2 * * /usr/bin/fetchmail




Ejecutarlo los días 1,3,7,12,15 y 20 del mes a las
6:30









"computeroutput">30 6 1,3,7,12,15,20 * * /usr/bin/fetchmail



Ejecutarlo el día 1 de julio a las 6:30









"computeroutput">30 6 1 7 * /usr/bin/fetchmail



Ejecutarlo los lunes cada 10 minutos









"computeroutput">*/10 * * * 1 /usr/bin/fetchmail




Ejecutarlo de lunes a viernes a las hora en punto









"computeroutput">0 * * * 1-5 /usr/bin/fetchmail



Crontab predeterminados



Los sistemas, para facilitar la programación de
tareas de administración, disponen de un crontab
estándar que permite ejecutar tareas cada hora, cada
día, cada semana o cada mes; se crea un directorio
para cada una de estas tareas y todos los ficheros
ejecutables que pogamos allí, normalmente guiones de
shell, se ejecutarán automáticamente. Los
directorios en cuestión son, /etc/cron.hourly,
/etc/cron.dail, /etc/cron.weekly y /etc/cron.monthly.




El fichero /etc/crontab que ejecuta los contenidos de estos
directorios quedaría como:








SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly



1 comentario: