Cron es el programador de tareas de Unix/Linux y la base de los cron jobs en servidores, contenedores y servicios en la nube. Su sintaxis parece críptica al principio (*/15 * * * *), pero una vez entiendes los cinco campos, es muy sencilla. Esta guía te lo explica con ejemplos.
Los cinco campos de cron
Una expresión cron tiene cinco campos separados por espacios, cada uno con un rango:
* * * * *
│ │ │ │ │
│ │ │ │ └── Día de la semana (0-6, domingo=0)
│ │ │ └──── Mes (1-12)
│ │ └────── Día del mes (1-31)
│ └──────── Hora (0-23)
└────────── Minuto (0-59)
Cada campo indica cuándo se ejecuta la tarea. La tarea corre cuando todos los campos coinciden con la hora actual.
Los símbolos que necesitas
*(asterisco): "cada" valor. En el minuto, significa cada minuto.,(lista): varios valores.1,15,30= en los minutos 1, 15 y 30.-(rango): un intervalo.9-17en la hora = de 9 a 17./(paso): cada N.*/15en el minuto = cada 15 minutos.
Ejemplos prácticos
| Expresión | Cuándo se ejecuta |
|---|---|
* * * * * |
Cada minuto |
*/15 * * * * |
Cada 15 minutos |
0 * * * * |
Cada hora en punto |
0 9 * * * |
Todos los días a las 9:00 |
0 9 * * 1 |
Cada lunes a las 9:00 |
0 0 1 * * |
El día 1 de cada mes a medianoche |
0 9-17 * * 1-5 |
Cada hora, de 9 a 17, de lunes a viernes |
30 2 * * 0 |
Los domingos a las 2:30 |
Construir y leer estas expresiones es mucho más fácil con un asistente visual. Puedes hacerlo gratis con el generador de cron de esta web, que traduce la expresión a lenguaje natural mientras la creas.
Cómo leer una expresión paso a paso
Tomemos 0 9-17 * * 1-5:
- Minuto
0: en el minuto 0. - Hora
9-17: de las 9 a las 17. - Día del mes
*: cualquier día. - Mes
*: cualquier mes. - Día de la semana
1-5: de lunes a viernes.
Resultado: cada hora en punto, de 9:00 a 17:00, de lunes a viernes. Útil para tareas de oficina.
Errores comunes con cron
- Confundir día del mes y día de la semana: si pones ambos, en muchas implementaciones la tarea corre cuando cualquiera de los dos coincide, no ambos. Cuidado con eso.
- Olvidar la zona horaria: cron usa la zona del servidor. Una tarea "a las 9" puede ser a otra hora para ti.
- Tareas que se solapan: si una tarea tarda más que su intervalo, pueden ejecutarse dos a la vez. Controla la concurrencia.
- Domingo es 0 (y a veces 7): según el sistema, el domingo puede ser 0 o 7.
Preguntas frecuentes
¿Cron sirve fuera de Linux? La sintaxis cron se usa en muchos sistemas: GitHub Actions, Kubernetes CronJobs, servicios cloud, librerías de Node… El formato es el mismo.
¿Cómo ejecuto algo cada 30 segundos? Cron tiene resolución de minuto; para segundos necesitas otra herramienta o dos tareas desfasadas.
¿Qué significa @daily o @hourly? Son atajos: @daily = 0 0 * * *, @hourly = 0 * * * *.
¿Se suben mis datos? No, si usas un generador local. Todo ocurre en tu navegador.
Crea y entiende expresiones cron al instante con el generador de cron gratis, con traducción a lenguaje natural y 100% en tu navegador.