Eso que viene a la mente cuando se habla de "realizar tareas a intervalos regulares" en Linux y Unix, es el crontab. ¡Es tan reconfortante saber que el sistema se encarga de realizar tareas repetitivas automáticamente! Pero si no se entiende bien, puede convertirse en un dolor de cabeza, siendo a la vez un ángel y un demonio. Basándome en mis experiencias tras luchar varias veces con crontab, compartiré qué es, cómo usarlo y algunos consejos prácticos.

¿Qué es realmente el crontab?

El crontab es, en términos simples, una herramienta en sistemas Linux y Unix para "programar trabajos que se ejecutan automáticamente y de forma regular". Gracias a esta configuración, puedo manejar fácilmente tareas tediosas que se repiten diariamente, semanalmente o mensualmente. Una vez configurado, el sistema se encarga de realizar esas tareas por mí, como si fuera mi asistente personal.

Todo esto es posible gracias al demonio cron. El demonio cron verifica el contenido del archivo crontab y ejecuta los comandos en los momentos especificados, y esa es precisamente la razón por la que disfruto usar crontab.

Conociendo los comandos de crontab

El crontab tiene varios comandos útiles. Familiarizarse con ellos no solo ahorra tiempo, sino que también facilita la revisión y modificación de configuraciones.

  • crontab -e : Se utiliza para abrir el archivo crontab y agregar o modificar tareas.
  • crontab -l : Muestra el contenido del archivo crontab del usuario actual.
  • crontab -r : Elimina el archivo crontab del usuario actual. (Manéjalo con cuidado)

¿Cómo es el formato del archivo crontab?

El archivo crontab está organizado en líneas, donde cada línea consiste en cinco campos de tiempo y un comando. Al principio, los campos pueden parecer confusos, pero al desglosarlos, son bastante simples.

*  *  *  *  * /path/to/command
-  -  -  -  -
|  |  |  |  +----- Días de la semana (0 - 7) (domingo es 0 o 7)
|  |  |  +------- Mes (1 - 12)
|  |  +--------- Día del mes (1 - 31)
|  +----------- Hora (0 - 23)
+------------- Minuto (0 - 59)

Cada campo puede contener números o *, que representa todos los valores. Por ejemplo, * * * * * significa "ejecutar en cada minuto, cada hora, cada día, cada mes y cada día de la semana". En resumen, se ejecuta cada minuto. Al aplicar esto de manera adecuada, se pueden lograr programaciones realmente diversas.

Ejecutar una tarea cada 5 minutos: un ejemplo de crontab

Supongamos que presentas el comando */5 * * * * /path/to/myscript.sh. Esta configuración significa que se ejecutará el script llamado myscript.sh cada 5 minutos.

  • */5 : cada 5 minutos
  • * : representa todas las horas
  • * : representa todos los días
  • * : representa todos los meses
  • * : representa todos los días de la semana

Por lo tanto, el script se ejecutará cada 5 minutos a lo largo del día. No hay necesidad de preocuparse, se ejecutará periódicamente, ¡lo cual es muy conveniente!

Explicación del uso de crontab

Ejemplos de diversas aplicaciones

Puedes configurar crontab según diferentes situaciones. Veamos algunos ejemplos de cómo se puede utilizar.

  1. Ejecutar un script cada hora
    0 * * * * /path/to/script.sh
    Ejecuta el script a las 0 minutos de cada hora. Por ejemplo, a las 12:00, 13:00, 14:00…
  2. Ejecutar trabajos de respaldo a las 3 a.m. todos los días
    0 3 * * * /path/to/backup.sh
    Programar un respaldo todos los días a las 3 a.m. podría reducir la cantidad de trabajo nocturno.
  3. Ejecutar el primer y el 15 de cada mes a las 2 a.m.
    0 2 1,15 * * /path/to/script.sh
    Es bueno tener trabajos importantes configurados para que se repitan a principios y mediados de mes.
  4. Ejecutar solo los fines de semana
    30 8 * * 6,7 /path/to/weekend_script.sh
    Esta es una configuración para ejecutar un script a las 8:30 a.m. todos los sábados y domingos.

Aspectos a tener en cuenta al configurar el crontab

Las tareas de crontab en Linux se mantienen incluso después de reiniciar el sistema. Sin embargo, hay un punto a tener en cuenta: si hay un trabajo programado para ejecutarse mientras el sistema está apagado, no se ejecutará. Por ejemplo, si se establece una tarea para ejecutarse a las 3 p.m. todos los días, pero el sistema se enciende a las 4 p.m., esa tarea se omitirá.

Para resolver este problema, puedes utilizar un amigo llamado anacron. Anacron es una herramienta que ejecuta tareas "perdidas" incluso cuando el sistema está apagado. Compensa las deficiencias de crontab, por lo que es útil cuando necesitas que ciertas tareas se ejecuten de manera ininterrumpida a intervalos regulares.


Utilizar correctamente crontab puede ser de gran ayuda para mí. La automatización de tareas importantes a través de la programación de tiempo no solo ahorra tiempo, sino que también reduce errores. Claro, al principio podría parecer complicado debido a su formato, pero una vez que te acostumbras, descubrirás la comodidad que ofrece. ¿Por qué no das un paso hacia el mundo de crontab después de leer esto?