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.

Qué es una expresión cron

Una expresión cron declara en una sola línea cuándo debe ejecutarse una tarea repetida. Cinco campos —minuto, hora, día del mes, mes y día de la semana— se disponen desde la izquierda separados por espacios, y cada uno puede combinar * para todos los valores, una lista separada por comas, un intervalo con guion y un paso con barra. Así, */15 9-17 * * 1-5 significa «cada quince minutos de nueve a cinco, de lunes a viernes».

Esta herramienta analiza lo que usted escriba y, **tras enunciar la planificación en palabras, calcula las cinco próximas veces que se ejecutará** a contar desde ahora. El desglose por campos aparece al lado, de modo que se ve qué parte está obrando. El día de la semana va de 0 para domingo a 6 para sábado como norma, pero también se admite la forma 7 para domingo que usan algunas implementaciones, tratada internamente como 0. La búsqueda de ejecuciones futuras alcanza unos cuatro años; si nada coincide dentro de ese plazo, se dice con claridad.

Cómo usar el analizador de cron

  1. Escriba la expresión Dé los cinco campos —minuto, hora, día, mes y día de la semana— separados por espacios. Un número de campos erróneo, o un valor fuera de rango, provoca un aviso.
  2. Pulse «analizar» El sentido de la planificación aparece en palabras. Compruebe aquí primero que no ha leído mal su propia expresión.
  3. Revise el desglose por campos Se enumera qué representa cada uno de minuto, hora, día, mes y día de la semana. Delata cualquier campo con un valor que usted no pretendía.
  4. Lea las próximas ejecuciones Los cinco momentos siguientes se dan como fechas y horas. Un desajuste con lo que pretendía —fijar el día 31 en meses que no lo tienen, por ejemplo— aparece como fechas concretas.
  5. Tome prestado de los patrones habituales Una tabla reúne los más comunes: cada minuto, cada cinco minutos, en punto, las nueve en días laborables. Partir del más cercano y modificarlo es el camino rápido.

Consejos para aprovecharla mejor

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

Dónde ayuda el analizador de cron

Confirmar el sentido antes de llevarlo al crontab

Analizarlo antes de registrarlo en un servidor evita el percance de que una tarea corra mucho más a menudo de lo previsto, o no corra jamás.

Comprobar una planificación de GitHub Actions

La expresión bajo schedule de un flujo de trabajo usa la misma notación de cinco campos. La lista de próximas ejecuciones muestra si el intervalo es el que pretendía.

Descifrar la expresión de otra persona

Cuando una configuración heredada contiene algo como 0 */6 * * *, pasarla a palabras le dice al instante a qué horas se dispara.

Investigar una ejecución que se desvió

Cuando una tarea no corrió a la hora en que debía, la lista de próximas ejecuciones separa «la causa es la expresión misma» de «la causa es otra».

Cuando quiera contar los días entre ejecuciones

Para contar cuánto falta para la próxima, use el temporizador de cuenta atrás; para contar en días hábiles, el cálculo de días hábiles.

Términos sobre cron

cron
El mecanismo de los sistemas de tipo Unix para ejecutar tareas repetidamente a horas fijadas. La tabla que empareja cada tarea con su horario se llama crontab.
Campo
Cada elemento de una expresión cron, separado por espacios. De izquierda a derecha son minuto (0–59), hora (0–23), día del mes (1–31), mes (1–12) y día de la semana (0–6).
Asterisco
Representa todos los valores que el campo puede tomar. Puesto en el minuto significa cada minuto; en el mes, cada mes.
Paso
Se escribe como */15 y semejantes para indicar un intervalo. Toma valores a lo largo del rango con una zancada fija: cada quince minutos, por ejemplo.
Rango
Se escribe como 1-5 para tomar juntos varios valores consecutivos. En el campo del día de la semana eso es de lunes a viernes; en el de la hora, de la una a las cinco.
Numeración del día de la semana
0 es domingo y 6 es sábado. Algunas implementaciones admiten además 7 para domingo, y esta herramienta trata el 7 igual que el 0.
Zona horaria
cron se lee de ordinario en la hora del entorno donde corre. Si el reloj de un servidor no está como usted supone, la misma expresión se disparará a otra hora.

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.
Tool-kun

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.