Decodificador de expresiones cron y próxima ejecución
Datos de entrada
| Expresión cron | 0 9 * * 1-5 |
|---|
Decodificador de expresiones cron y próxima ejecución
Decodifica expresiones cron de cinco campos o @atajos, genera una descripción legible de la planificación y calcula las próximas tres ejecuciones en UTC.
Datos de entrada
Expresión cron
Resultados
Introduce un valor para ver los resultados.
Planificación
Próximas 3 ejecuciones (UTC)
Decodificador de expresiones cron y próxima ejecución
Una expresión cron es una cadena de cinco campos que planifica tareas recurrentes en sistemas Unix. El planificador lanza la tarea en cuanto los cinco campos coinciden con el reloj del sistema. El formato es:
| Campo | Posición | Valores admitidos | Caracteres especiales |
|---|---|---|---|
| Minuto | 1 | 0–59 | * / , - |
| Hora | 2 | 0–23 | * / , - |
| Día del mes | 3 | 1–31 | * / , - |
| Mes | 4 | 1–12 | * / , - |
| Día de la semana | 5 | 0–7 (0 y 7 = domingo) | * / , - |
Caracteres especiales
*– coincide con todos los valores del campo («ejecutar cada hora», «ejecutar cada día»)*/n– paso; coincide con cada n-ésimo valor (p. ej.,*/15en el campo de minutos = cada 15 minutos)a-b– rango; coincide con todos los valores de a a b inclusive (p. ej.,1-5en el campo de día de la semana = de lunes a viernes)a,b,c– lista; coincide con cada valor indicado (p. ej.,1,15en el campo de día del mes = los días 1 y 15)a-b/n– rango con paso; p. ej.,10-50/10coincide con 10, 20, 30, 40, 50
Patrones habituales
| Expresión | Significado |
|---|---|
* * * * * | Cada minuto |
*/15 * * * * | Cada 15 minutos |
0 * * * * | Al inicio de cada hora |
0 9 * * 1-5 | 09:00 UTC en días laborables |
30 17 * * 5 | 17:30 UTC todos los viernes |
0 0 1 * * | Medianoche UTC el día 1 de cada mes |
0 0 1 1 * | Medianoche UTC el 1 de enero de cada año |
0 0 * * 0 | Medianoche UTC todos los domingos |
@atajos
La mayoría de las implementaciones de cron aceptan alias de conveniencia:
| Atajo | Expresión equivalente |
|---|---|
@yearly / @annually | 0 0 1 1 * |
@monthly | 0 0 1 * * |
@weekly | 0 0 * * 0 |
@daily / @midnight | 0 0 * * * |
@hourly | 0 * * * * |
Interacción entre día del mes y día de la semana
Cuando tanto el campo de día del mes como el de día de la semana están restringidos (ninguno es *), cron aplica semántica OR: la tarea se ejecuta si se cumple cualquiera de las dos condiciones. Por ejemplo:
0 0 1 * 1
Esta expresión se activa a medianoche el día 1 de cada mes Y todos los lunes, no solo en los lunes que caigan en día 1. Este comportamiento está especificado por POSIX y lo implementa Vixie cron, la implementación más extendida.
Si solo uno de los dos campos está restringido, el otro no tiene efecto y la tarea simplemente se ejecuta en todos los días que coincidan con el campo restringido.
Cómo funciona la planificación cron
Cada minuto, el planificador comprueba si la hora actual coincide con los cinco campos. Si coincide, la tarea se lanza. Dado que la granularidad es de un minuto, el intervalo mínimo entre dos ejecuciones es de un minuto.
El planificador no recupera las ejecuciones perdidas por omisión. Si el servidor está apagado cuando llega una hora planificada, esa ejecución se omite. Algunos planificadores, como Kubernetes CronJobs, disponen de un parámetro startingDeadlineSeconds para recuperar ejecuciones perdidas dentro de una ventana de tiempo.
Consideraciones sobre la zona horaria
La mayoría de las implementaciones de cron interpretan las expresiones en la zona horaria local del servidor. Los servidores configurados en UTC ejecutan las tareas exactamente en los momentos que indican las expresiones UTC. Los servidores en otras zonas horarias desplazan la hora de ejecución en consecuencia.
Kubernetes CronJobs y las planificaciones de GitHub Actions interpretan las expresiones cron en UTC. Esta calculadora muestra las próximas ejecuciones en UTC; si el sistema opera en una zona horaria distinta, se debe ajustar el resultado sumando o restando el desplazamiento UTC de esa zona.
Preguntas frecuentes (FAQ)
¿Qué significan los cinco campos de cron?
Una expresión cron tiene cinco campos separados por espacios en este orden: minuto (0–59), hora (0–23), día del mes (1–31), mes (1–12) y día de la semana (0–7, donde 0 y 7 representan el domingo). Cada campo acepta un valor concreto, un comodín (), un rango (1-5), un paso (/15), una lista (1,15) o una combinación como 1-5/2. Los @atajos —@yearly, @monthly, @weekly, @daily, @hourly— se expanden a su expresión equivalente de cinco campos.
¿Cómo interactúan el día del mes y el día de la semana?
Cuando tanto el campo de día del mes como el de día de la semana están restringidos (ninguno es *), cron aplica semántica OR: la tarea se ejecuta si se cumple cualquiera de las dos condiciones. Por ejemplo, "0 0 1 * 1" se activa el día 1 de cada mes Y todos los lunes, no solo en los lunes que caigan en día 1. Si solo uno de los dos campos está restringido, la tarea se ejecuta únicamente en los días que coincidan con ese campo.
¿Las horas de próxima ejecución se muestran en hora local o en UTC?
Esta calculadora muestra todas las próximas ejecuciones en UTC. La mayoría de las implementaciones de cron —crontab en Linux, Kubernetes CronJobs, planificaciones de GitHub Actions— interpretan la expresión en la zona horaria local del servidor o en UTC. Si el daemon cron está configurado en UTC, las horas mostradas aquí coincidirán exactamente. Si opera en una zona horaria distinta, se debe sumar o restar el desplazamiento UTC correspondiente.