Saltar al contenido
CronExplain

Chuleta de sintaxis cron

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

CampoValoresNotas
Segundo0–59Solo Quartz, Spring y cron de 6 campos
Minuto0–59Primer campo en crontab y AWS
Hora0–23Formato de 24 horas
Día del mes1–31L, W y LW en Quartz, Spring y AWS
Mes1–12 o JAN–DECLos nombres no distinguen mayúsculas
Día de la semana0–7 o SUN–SATQuartz y AWS: 1–7, 1 = domingo
Año1970–2199Opcional en Quartz, obligatorio en AWS

Caracteres especiales

SímboloSignificadoEjemplo
*Cualquier valor* * * * * — cada minuto
,Lista de valores0 9,17 * * * — 09:00 y 17:00
-Rango0 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 semana0 0 0 L * ? — último día del mes
WDía laborable más cercano0 0 9 15W * ? — laborable más próximo al 15
#Enésimo día de la semana del mes0 0 9 ? * 2#1 — primer lunes

Macros

Macroscrontab estándar
@yearly / @annually0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily / @midnight0 0 * * *
@hourly0 * * * *

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í.