02 junio 2008

Programar tareas en Linux con cron

Para programar tareas con Linux, lo más usual es utilizar el comando cron que nos permite establecer la frecuencia con que se debe ejecutar la tarea. El fichero clave para configurar las tareas está en /etc/crontab y por defecto aparecen directorios predefinidos donde se pueden ubicar scripts para su ejecución.

# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
Para añadir una entrada manual tenemos que seguir el formato de la línea a introducir:
minuto hora dia-del-mes mes dia-de-la-semana usuario comando De modo que para se ejecute el script backup.sh que tenemos en /root una vez a la semana (domingo) a las 2:30 pondríamos:
30 2 * * 7 root /root/backup.sh
Nota 1: cron hace comprobaciones sobre lo que tiene que ejecutar cada minuto. El asterisco '*' sirve para indicar que cualquier valor es válido en ese campo, de tal modo que si todos los campos son asteriscos, la tarea se ejecutará cada minuto.
Nota 2: Si en lugar de especificar los minutos, horas, etc... queremos especificar cada x unidades, debemos hacerlo con la barra de dividir: */30 * * * * (cada 30 minutos) 30 */6 * * * * (cada 6 horas cuando los minutos sean 30) ... Más información: LinuxTotal.com.mx

2 comentarios:

Anónimo dijo...

Solamente Gracias, por los datos y ejemplo.

Luis Quispe

Anónimo dijo...

De igual manera agradezco la explicacion y el ejemplo tan claro Etatus. Andaba buscando esa info y no encontraba explicacion a detalle solo ejemplos y pues jeje no queria checarme el man porque ahorita estaba en win.
Saludos y ojala que sigas con tu blog aunque sea mes a mes.