Una referencia de una página para la sintaxis cron de los dialectos más comunes: qué campos existen, qué valores aceptan y qué hace cada carácter especial. Prueba cualquier ejemplo en el explicador.
Campos y valores permitidos
Campo
Valores
Notas
Segundo
0–59
Solo Quartz, Spring y cron de 6 campos
Minuto
0–59
Primer campo en crontab y AWS
Hora
0–23
Formato de 24 horas
Día del mes
1–31
L, W y LW en Quartz, Spring y AWS
Mes
1–12 o JAN–DEC
Los nombres no distinguen mayúsculas
Día de la semana
0–7 o SUN–SAT
Quartz y AWS: 1–7, 1 = domingo
Año
1970–2199
Opcional en Quartz, obligatorio en AWS
Caracteres especiales
Símbolo
Significado
Ejemplo
*
Cualquier valor
* * * * * — cada minuto
,
Lista de valores
0 9,17 * * * — 09:00 y 17:00
-
Rango
0 9 * * 1-5 — laborables a las 09:00
/
Paso
*/15 * * * * — cada 15 minutos
?
Sin valor específico (campos de día)
0 0 12 ? * MON — Quartz
L
Último día / último día de la semana
0 0 0 L * ? — último día del mes
W
Día laborable más cercano
0 0 9 15W * ? — laborable más próximo al 15
#
Enésimo día de la semana del mes
0 0 9 ? * 2#1 — primer lunes
Macros
Macros
crontab estándar
@yearly / @annually
0 0 1 1 *
@monthly
0 0 1 * *
@weekly
0 0 * * 0
@daily / @midnight
0 0 * * *
@hourly
0 * * * *
Orden de lectura
Lee la expresión de la unidad más pequeña a la más grande: 30 2 * * 1 es el minuto 30 de la hora 2 de cualquier día del mes, en cualquier mes, cuando el día de la semana es lunes, es decir, las 02:30 de cada lunes. En Quartz y Spring, antepón el campo de segundos; en AWS, añade el año al final.
Errores frecuentes
*/7 en el campo de minutos no significa «cada siete minutos sin fin»: se reinicia cada hora, así que se dispara en 0, 7, … 56 y luego otra vez en 0. Restringir ambos campos de día en crontab significa que basta con que coincida uno. Y 0 en el día de la semana no es válido en Quartz ni en AWS, donde la semana empieza en 1.
Preguntas frecuentes
¿Cuál es el orden de los campos de cron?
Minuto, hora, día del mes, mes y día de la semana. Quartz y Spring ponen los segundos delante; AWS añade un año al final.
¿Qué significa el signo de interrogación en cron?
«Sin valor específico». Quartz y AWS lo exigen en uno de los dos campos de día; el crontab estándar no lo acepta.
¿Cómo escribo «cada 90 minutos»?
Cron no puede expresar en una sola línea intervalos que no dividen la hora o el día de forma exacta. Usa dos entradas, como 0 0-21/3 * * * y 30 1-22/3 * * *.
¿Los nombres de meses y días distinguen mayúsculas?
No. JAN, Jan y jan son equivalentes en todos los dialectos tratados aquí.