0–59
0–23
1–31
1–12 o JAN–DEC
0–7 o SUN–SAT
Ejemplos habituales
¿Cómo se usa?
01
Escribe o elige
Pulsa uno de los ejemplos, escribe la expresión entera o rellena los cinco campos por separado. Todo está sincronizado.
02
Léela en español
La descripción se reescribe con cada tecla. Si no dice lo que querías, la expresión no hace lo que querías.
03
Comprueba las fechas
Las próximas cinco ejecuciones, en tu hora y en UTC. Es la comprobación que evita la mayoría de los sustos.
Los símbolos
- *
- Todos los valores del campo. En el minuto significa «los sesenta».
- ,
- Lista de valores sueltos: 1,15,30 son esos tres y ninguno más.
- -
- Rango, extremos incluidos: 1-5 en el día de la semana es de lunes a viernes.
- /
- Paso: */15 es cada quince, y 10-50/10 es cada diez entre el 10 y el 50.
- JAN, MON
- Nombres de tres letras en inglés, en los campos de mes y día de la semana.
- 0 y 7
- Los dos son domingo en el campo de día de la semana. No es una errata.
Los atajos
- @hourly
- 0 * * * *
- @daily · @midnight
- 0 0 * * *
- @weekly
- 0 0 * * 0
- @monthly
- 0 0 1 * *
- @yearly · @annually
- 0 0 1 1 *
- @reboot
- Al arrancar la máquina. No es una hora, así que no tiene próximas ejecuciones.
Los atajos se aceptan arriba: escribe @daily y la herramienta lo traduce a sus cinco campos.
Programar la tarea es la parte fácil
Lo difícil viene después: qué pasa si la tarea falla de madrugada y nadie se entera, qué pasa si tarda más de lo que dura el intervalo y se solapa consigo misma, y qué pasa si el servidor estaba apagado a esa hora. Un cron no reintenta, no avisa y no deja rastro si no se lo montas tú.
Ese es justo el trabajo que hacemos cuando automatizamos un proceso: la ejecución programada es una línea; el registro, los reintentos y el aviso cuando algo no cuadra son el resto.
Preguntas frecuentes
¿En qué zona horaria se ejecuta un cron?
En la del sistema que lo ejecuta, y ahí está el problema: casi todos los servidores y casi todas las plataformas de despliegue trabajan en UTC. Si escribes «0 9 * * *» pensando en las nueve de la mañana en Bogotá, en un servidor en UTC eso son las cuatro de la madrugada. Por eso esta herramienta muestra cada ejecución en las dos horas y te deja elegir cómo interpretar la expresión.
¿Por qué mi tarea se ejecuta días que no debería?
Casi seguro por la regla del «o». Cuando el día del mes y el día de la semana están los dos restringidos, cron ejecuta si casa cualquiera de los dos. «0 0 1 * 1» no es «el día 1 si cae en lunes»: es «el día 1 y además todos los lunes». Para pedir la intersección hay que dejar uno en asterisco y comprobar el otro dentro de tu propio script.
¿Qué diferencia hay entre cinco y seis campos?
El formato clásico de crontab tiene cinco: minuto, hora, día del mes, mes y día de la semana. Quartz —el planificador de Java que usan muchas herramientas empresariales— añade los segundos al principio y a veces el año al final, y usa «?» donde crontab usa «*». Si pegas una expresión de seis campos aquí, la herramienta te lo dice en vez de interpretarla mal.
¿Cada cuánto es «*/7» en los minutos?
Cada siete minutos dentro de cada hora, pero no cada siete minutos seguidos: dispara en el 0, 7, 14… hasta el 56, y el siguiente es el 0 de la hora siguiente, cuatro minutos después. El paso se reinicia con cada hora. Si necesitas un intervalo de verdad constante, usa un paso que divida a 60: 2, 3, 4, 5, 6, 10, 12, 15, 20 o 30.
¿Se envía mi expresión a algún servidor?
No. El análisis, la descripción y el cálculo de fechas ocurren en tu navegador con aritmética normal. No hay peticiones de red, no se guarda nada y este sitio no usa cookies de seguimiento.
¿Los cambios de hora afectan a las próximas ejecuciones?
Sí, y de forma incómoda. Si interpretas la expresión en una zona con horario de verano, la noche del cambio puede haber una hora que no existe o una que ocurre dos veces, y cada implementación de cron lo resuelve a su manera. Aquí las fechas se calculan con la zona de tu navegador, así que sirven de orientación; si la tarea es crítica, prográmala en UTC y te ahorras el problema entero.
¿Puedo usar L, W o # ?
No en el cron de siempre. Esos comodines —último día del mes, día laborable más cercano, enésimo día de la semana— son de Quartz y de algunas variantes. El crontab de un servidor Linux no los entiende, así que esta herramienta tampoco los acepta: preferimos rechazarlos a que descubras en producción que tu servidor no los soporta.
¿Y si la tarea falla un domingo a las tres?
Programar una ejecución es una línea. Que alguien se entere cuando no ocurre, que se pueda reintentar y que quede registro es lo que convierte un cron en un proceso fiable.
Respondemos en menos de 24 horas hábilesBogotá · UTC−5