Entienda un cron antes de que se ejecute
Las expresiones cron son cadenas compactas de programación utilizadas por servidores, trabajos de CI, plataformas de automatización y scripts de mantenimiento. Son poderosas, pero un pequeño error tipográfico puede cambiar una tarea de diaria a cada minuto, o de días laborables a fines de semana.
Este analizador explica una expresión cron Unix de 5 campos en lenguaje sencillo, desglosa cada campo y muestra las próximas horas de ejecución usando la zona horaria que elija en la herramienta.
Dialecto de cron compatible
El parser v1 admite el cron estándar de Unix con cinco campos:
minute hour day-of-month month day-of-week - Valores de minuto desde
0to59. - Valores de hora desde
0to23. - Valores de día del mes desde
1to31. - Valores de mes desde
1to12, además de nombres comoJANandDEC. - Valores de día de la semana desde
0to7, además de nombres comoMONandFRI. Tanto0and7significan Domingo.
Admite comodines, listas separadas por comas, rangos y valores de paso como */15 or 9-17/2.
Qué no se admite intencionalmente
Los dialectos de cron no son universales. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions y plataformas de hosting pueden añadir sus propios campos u operadores especiales.
- Los campos de segundos y los campos de año no se analizan como cron de Unix.
- Operadores de Quartz como
?,L,W, y#se informan como no compatibles. - Macros como
@dailyand@rebootno se expanden. - El texto del comando después de un horario no se trata como parte de la expresión.
Use esta página como un inspector para horarios de estilo Unix. Antes de cambiar la automatización en producción, verifique el scheduler exacto que ejecutará el trabajo.
Zona horaria y comportamiento del horario de verano
Una expresión cron no incluye una zona horaria por sí misma. La misma expresión puede ejecutarse en momentos diferentes dependiendo de si el servidor usa UTC, una zona horaria del sistema local o una configuración de zona horaria específica del scheduler.
- La vista previa muestra las horas de ejecución en la zona horaria IANA seleccionada y en UTC.
- Las transiciones de adelanto de primavera pueden omitir horas del reloj local que no existen.
- Las transiciones de retroceso pueden repetir una hora del reloj local; el comportamiento del scheduler puede diferir.
- Si tanto el día del mes como el día de la semana están restringidos, el cron de Unix comúnmente usa semántica OR.
Para trabajos críticos, trate la vista previa como una ayuda de planificación y confirme el comportamiento en el scheduler mismo.
Preguntas frecuentes
¿Esto es compatible con Quartz cron?
No. El parser admite solo cron de Unix de 5 campos. Los campos de segundos al estilo Quartz, los campos de año y operadores como ?, L, W, y # se muestran como no compatibles.
¿Qué zona horaria usa una expresión cron?
Las expresiones cron no llevan información de zona horaria. La vista previa usa la zona horaria seleccionada en la herramienta, pero su servidor o scheduler puede usar una zona horaria diferente.
¿Por qué pueden coincidir el día del mes y el día de la semana?
En el comportamiento común de cron Unix, cuando ambos campos están restringidos, una fecha puede coincidir si cualquiera de los campos coincide. Por ejemplo, 0 0 1 * MON puede ejecutarse el primer día del mes y los lunes.
¿Puedo pegar la parte del comando desde crontab?
Pegue solo los cinco campos del horario. La herramienta es un parser de horarios, no un parser completo de crontab, por lo que el texto del comando después del horario no se interpreta.