Analizador de expresiones Cron y próximas ejecuciones

Analiza una expresión cron (minuto hora día mes día de la semana) y muestra su horario en lenguaje sencillo. Admite pasos, rangos y listas, y calcula las próximas 5 ejecuciones. Útil para leer un crontab o el "schedule" de GitHub Actions.

Sintaxis de la expresión cron (5 campos)

Una expresión cron tiene 5 campos separados por espacios, de izquierda a derecha: minuto, hora, día del mes, mes y día de la semana. Cada campo admite los siguientes caracteres especiales.

Posición Campo Valores permitidos
1 Minuto 0-59
2 Hora 0-23
3 Día del mes 1-31
4 Mes 1-12
5 Día de la semana 0-7

El día de la semana suele ser 0 = domingo a 6 = sábado, pero esta herramienta también acepta 7 como alias de domingo, usado por algunas implementaciones de cron (se trata igual que el 0).

Cada campo admite "*" (cualquier valor), listas separadas por comas (1,15,30), rangos con guion (1-5) y pasos con barra (*/15, 1-30/5), y estos se pueden combinar libremente.

Patrones cron habituales

Expresión cron Significado
* * * * * Se ejecuta cada minuto.
*/5 * * * * Se ejecuta cada 5 minutos.
0 * * * * Se ejecuta una vez por hora, en el minuto 0.
0 0 * * * Se ejecuta todos los días a medianoche (00:00).
0 9 * * 1-5 Se ejecuta a las 9:00 los días laborables (lunes a viernes).
0 0 1 * * Se ejecuta a medianoche el día 1 de cada mes.
0 0 1 1 * Se ejecuta a medianoche el 1 de enero de cada año.
*/15 9-17 * * 1-5 Se ejecuta cada 15 minutos entre las 9:00 y las 17:00 los días laborables.

Consejos

  • Los campos admiten combinar libremente listas con comas, rangos con guion y pasos con barra, como en "*/15 9-17 * * 1-5".
  • El día de la semana suele ser 0-6 (domingo a sábado), pero esta herramienta también acepta el 7 como alias habitual de domingo en algunas implementaciones de cron.
  • Si tanto el día del mes como el día de la semana están restringidos (no son "*"), el cron estándar los trata como una condición OR: la tarea se ejecuta si se cumple cualquiera de los dos.
  • El disparador "schedule" de GitHub Actions usa la misma sintaxis cron de 5 campos que esta herramienta, así que también sirve para comprobar cuándo se ejecutará exactamente un workflow.
  • La hora de ejecución real depende de la zona horaria configurada en el servidor, así que conviene comprobar también la hora actual del servidor tras editar un crontab.

Preguntas frecuentes

Sí. La especificación estándar de cron usa el 0 para el domingo, pero algunas implementaciones (como Vixie cron) también aceptan el 7 como notación alternativa para el domingo. Esta herramienta interpreta ambos como domingo.

No hay prioridad, sino una condición OR. Cuando tanto el día del mes como el día de la semana están restringidos (no son "*"), la tarea se ejecuta en cualquier día que cumpla alguna de las dos condiciones. Si solo uno de los campos está restringido, solo se aplica esa condición.

El formato básico de 5 campos (minuto hora día mes día de la semana) es el mismo. La diferencia principal es que los horarios de GitHub Actions siempre se evalúan en UTC, y la ejecución real puede retrasarse desde varios minutos hasta decenas de minutos, algo distinto del crontab de un servidor.

Sí, los pasos (un valor inicial con barra, o */intervalo) se pueden usar en cualquiera de los cinco campos. Aun así, en campos con un rango pequeño, como el mes o el día de la semana, las combinaciones prácticas son limitadas.
ツールくん

A propósito — Medio siglo de cron

Se dice que el nombre "cron" proviene de Chronos, la palabra griega para el tiempo, y ha sido el programador de tareas por excelencia desde los primeros días de UNIX en los años 70. Su sintaxis compacta de cinco campos puede expresar desde "cada minuto" hasta "una fecha y hora concretas una vez al año", y sigue usándose ampliamente casi medio siglo después.

Hoy en día, esta misma sintaxis cron de 5 campos se usa no solo en los crontab de servidores Linux, sino también en numerosas herramientas de CI/CD y plataformas de contenedores, como GitHub Actions, GitLab CI y los CronJob de Kubernetes. Es un ejemplo llamativo de una sintaxis diseñada en la era UNIX que sigue prosperando sin cambios en entornos cloud-native.

Una de las partes más complicadas de la sintaxis cron es su comportamiento cuando se configuran a la vez el día del mes y el día de la semana. Es tentador asumir una condición AND (que se cumplan ambos), pero la especificación real es una condición OR (que se cumpla cualquiera de los dos), lo cual es una causa habitual de que las tareas se ejecuten con más frecuencia de la prevista.

→ Ver todas las curiosidades