MiServe DevTools

Tus pegatinas

Fija aquí tus herramientas. Se guardan en este navegador.

Intérprete de expresiones cron

Lee una expresión cron campo por campo y en una sola frase sencilla, y mira cuándo se ejecutará la próxima vez.

En palabras sencillas

Qué significa cada campo de la expresión
CampoValorSignificadoValores permitidos
Minuto 0–59
Hora 0–23
Día del mes 1–31
Mes 1–12, JAN–DEC
Día de la semana 0–7, SUN–SAT

Próximas ejecuciones

EjecuciónDesde ahora

Funciona en tu navegador. Nada de lo que pegas se sube.

Acerca de esta herramienta

Los cinco campos

Una expresión cron son cinco campos separados por espacios: minuto (0–59), hora (0–23), día del mes (1–31), mes (1–12) y día de la semana (0–7, donde tanto 0 como 7 son domingo). Cron consulta el reloj una vez por minuto y ejecuta la tarea cuando coinciden el minuto, la hora, el mes y el día. Los dos campos de día deciden juntos si el día coincide, según la regla que se explica más abajo.

En cada campo, * coincide con todos los valores, una lista como 1,15 coincide con cada uno de sus valores, un rango como 1-5 coincide con todo lo que va del primer valor al último, y un paso como */15 o 8-18/2 toma uno de cada N valores del rango. Los meses y los días de la semana se pueden escribir con su nombre en inglés de tres letras, de JAN a DEC y de SUN a SAT.

Las macros son abreviaturas: @hourly es 0 * * * *, @daily y @midnight son 0 0 * * *, @weekly es 0 0 * * 0, @monthly es 0 0 1 * *, y @yearly y @annually son 0 0 1 1 *.

Cuando los dos campos de día están definidos

El día del mes y el día de la semana no se restringen entre sí. Cuando los dos están restringidos, la tarea se ejecuta cualquier día que coincida con uno u otro. Por eso 0 0 13 * 5 se ejecuta a medianoche el día 13 de cada mes y también todos los viernes, no solo los viernes 13.

Vixie cron y cronie deciden si un campo de día está restringido mirando su primer carácter. Un campo que empieza por *, incluido un paso como */2, cuenta como no restringido, y entonces tienen que coincidir los dos campos. 0 0 */2 * 1 se ejecuta los lunes que caen en un día impar del mes. Esta herramienta sigue la misma regla y te indica cuál de los dos casos se aplica.

Pasos, zonas horarias y lo que no se lee

Un paso cuenta desde el inicio del rango y vuelve a empezar cuando el rango termina. */15 en el campo de minutos da 0, 15, 30 y 45, que de verdad es cada 15 minutos. */7 da 0, 7, 14 y así hasta 56, y luego otra vez 0 cuatro minutos después. La tabla muestra los valores en los que se expande un paso para que puedas comprobarlo.

Cron compara la expresión con el reloj de la máquina en la que se ejecuta, y muchos servidores tienen ese reloj en UTC. Elige Hora local o UTC encima de la lista de próximas ejecuciones para que coincida con la máquina, y mira la otra columna para ver los mismos instantes en la otra zona. Cuando el reloj local cambia por el horario de verano, cada implementación de cron hace algo distinto con las tareas programadas en la hora que se salta o se repite. Esta herramienta no muestra ninguna ejecución en una hora que se salta, y muestra dos veces una hora repetida solo cuando el campo de minutos o el de horas empieza por *.

Solo se lee la sintaxis estándar de cinco campos. Un campo de segundos, un campo de año y los caracteres ?, L, W y # son propios de otros planificadores, como Quartz, y se marcan como errores. Lo mismo ocurre con un paso después de un valor único, como 5/15: el manual de crontab solo define un paso después de * o de un rango, así que escribe 5-59/15.

Preguntas

¿Qué significa */5 en una expresión cron?

Significa uno de cada cinco valores, contando desde el valor más bajo que admite el campo. En el campo de minutos son los minutos 0, 5, 10 y así hasta 55, así que la tarea se ejecuta cada cinco minutos. En el campo de horas son las horas 0, 5, 10, 15 y 20.

¿0 0 13 * 5 se ejecuta solo los viernes 13?

No. Cuando el día del mes y el día de la semana están restringidos, cron ejecuta la tarea cuando coincide cualquiera de los dos. Esa expresión se ejecuta el día 13 de cada mes y todos los viernes.

¿El domingo es 0 o 7?

Las dos cosas. El campo del día de la semana admite de 0 a 7, y tanto 0 como 7 son domingo. El lunes es 1 y el sábado es 6. También puedes escribir SUN, MON, etc.

¿Qué zona horaria usa cron?

Cron usa el reloj y la zona horaria del sistema en el que se ejecuta, salvo que tu planificador te permita fijar una zona para la tarea. Muchos servidores y planificadores en la nube funcionan en UTC, así que compruébalo antes de dar por hecho que es la hora local.

Más herramientas de Tiempo