Crontab: Guía completa para programar tareas en Linux

Introducción

Crontab es una herramienta fundamental en sistemas Linux que permite programar la ejecución de comandos o scripts en momentos específicos. Esto es esencial para automatizar tareas como copias de seguridad, actualizaciones del sistema o cualquier proceso que deba ejecutarse de forma regular.

Campos de Crontab

Cada entrada en crontab se define mediante una línea con seis campos separados por espacios:

CampoDescripciónValores
MinutoControla el minuto de la hora en que el comando será ejecutado.0-59
HoraControla la hora en que el comando será ejecutado (formato de 24 horas).0-23
Día del mesDía del mes en que se quiere ejecutar el comando.1-31
MesMes en que el comando se ejecutará.1-12 o nombre del mes en inglés (tres primeras letras)
Día de la semanaDía en la semana en que se ejecutará el comando.0-7 o nombre del día en inglés (tres primeras letras) (0 y 7 = domingo)
UsuarioUsuario que ejecuta el comando.Nombre de usuario del sistema
ComandoComando, script o programa que se desea ejecutar.Puede contener múltiples palabras y espacios.

Uso del asterisco (*)

Un asterisco (*) como valor en los primeros cinco campos indica que el comando se ejecutará en todos los valores posibles para ese campo. Por ejemplo, un * en el campo de minuto indicará que el comando se ejecutará cada minuto.

Ejemplos de uso de Crontab

A continuación, se presentan algunos ejemplos de cómo usar crontab:

CrontabDescripción
01 * * * *Se ejecuta al minuto 1 de cada hora de todos los días.
15 8 * * *A las 8:15 a.m. de cada día.
15 20 * * *A las 8:15 p.m. de cada día.
00 5 * * 0A las 5 a.m. todos los domingos.
* 5 * * SunCada minuto de 5:00 a.m. a 5:59 a.m. todos los domingos.
45 19 1 * *A las 7:45 p.m. del primero de cada mes.
01 * 20 7 *Al minuto 1 de cada hora del 20 de julio.
10 1 * 12 1A la 1:10 a.m. todos los lunes de diciembre.
00 12 16 * WenAl mediodía de los días 16 de cada mes y que sea miércoles.
30 9 20 7 4A las 9:30 a.m. del día 20 de julio y que sea jueves.
30 9 20 7 *A las 9:30 a.m. del día 20 de julio sin importar el día de la semana.
20 * * * 6Al minuto 20 de cada hora de los sábados.
20 * * 1 6Al minuto 20 de cada hora de los sábados de enero.

Valores o listas/incrementos

Es posible especificar listas de valores o incrementos en los campos de crontab. Por ejemplo:

CrontabDescripción
59 11 * 1-3 1,2,3,4,5A las 11:59 a.m. de lunes a viernes, de enero a marzo.
45 * 10-25 * 6-7Al minuto 45 de todas las horas de los días 10 al 25 de todos los meses y que el día sea sábado o domingo.
10,30,50 * * * 1,3,5En el minuto 10, 30 y 50 de todas las horas de los días lunes, miércoles y viernes.
*/15 10-14 * * *Cada quince minutos de las 10:00 a.m. a las 2:00 p.m.
* 12 1-10/2 2,8 *Todos los minutos de las 12 del día, en los días 1, 3, 5, 7 y 9 de febrero a agosto. (El incremento en el tercer campo es de 2 y comienza a partir del 1).
0 */5 1-10,15,20-23 * 3Cada 5 horas de los días 1 al 10, el día 15 y del día 20 al 23 de cada mes y que el día sea miércoles.
3/3 2/4 2 2 2Cada 3 minutos empezando por el minuto 3 (3, 6, 9, etc.) de las horas 2, 6, 10, etc. (cada 4 horas empezando en la hora 2) del día 2 de febrero y que sea martes.

Ejemplo completo

El siguiente ejemplo muestra cómo ejecutar el comando who todos los lunes a las 10:30 y guardar la salida en el fichero quien.tex:

30 10 * * 1 /usr/bin/who >> /home/quien.tex

Comandos de Crontab

Para administrar las tareas programadas con crontab, se utilizan los siguientes comandos:

  • crontab -e: Edita el archivo crontab utilizando el editor vi.
  • crontab -l: Muestra la lista de tareas programadas.
  • crontab -r: Elimina el archivo crontab.

Conclusión

Crontab es una herramienta poderosa para automatizar tareas en sistemas Linux. Su sintaxis flexible permite programar la ejecución de comandos en una amplia variedad de horarios y fechas. Con un poco de práctica, podrás dominar crontab y utilizarlo para optimizar la administración de tu sistema.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.