Programar tareas periódicas con Crontab

cron es un administrador de procesos en segundo plano que ejecuta procesos en el instante que se indique en el fichero crontab

cron se ejecuta en background y revisa cada minuto la tabla del fichero /etc/crontab en búsqueda de tareas que se deban ejecutar (si ha llegado su momento). Podemos agregar nuevas tareas a cron para automatizar algunos procesos (p.ej. copias de seguridad).

Para ello, debemos editar el archivo /etc/crontab que normalmente tendrá un aspecto similar al siguiente:

En ese ejemplo vemos tareas que se ejecutan como usuario root, cada mes, cada semana, cada día o cada hora.

No hay límites de cuantas tareas podemos tener. Lo importante es cuidar la sintaxis y número de campos de cada línea del fichero. Los 7 campos que forman estas líneas están organizados de la siguiente manera:

Minuto: indica el minuto de la hora en que el comando será ejecutado, este valor debe de estar entre 0 y 59.
Hora: indica la hora en que el comando será ejecutado, se especifica en un formato de 24 horas, los valores deben estar entre 0 y 23, 0 es medianoche.
DíaDelMes: indica el día del mes en que se quiere ejecutar el comando. Por ejemplo se indicaría 20, para ejecutar el comando el día 20 de cada mes.
Mes: indica el mes en que el comando se ejecutará (1-12).
DiaDeLaSemana: indica el día de la semana en que se ejecutará el comando (1=lunes y hasta 7=domingo).
Usuario: indica el usuario que ejecuta el comando.
Comando: indica el comando que se desea ejecutar. Este campo puede contener múltiples palabras y espacios.
Un asterisco * como valor en los primeros cinco campos indicará el valor “todo“. Así, un * en el campo de minuto indicará todos los minutos de la hora.

Ejemplos:
La siguiente tarea apagará el ordenador cada día a las 00:30h :

La siguiente tarea eliminará todos los archivos de la carpeta /tmp todos los jueves (día
4) a la 15:30h :

0 comentarios

Enviar un comentario

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

Contacto