Saltar al contenido
helpyself

Expresión cron

Local only — nothing is uploaded unless you save or share it.

Lee una expresión cron en lenguaje llano y ve exactamente cuándo se ejecutará la próxima vez.

  1. Pega tu expresión cron: cinco campos, o un atajo como @daily.
  2. Lee la descripción en lenguaje llano para comprobar que dice lo que pretendías.
  3. Contrasta las próximas ejecuciones con lo que esperabas. Si no coinciden, la expresión está mal, no la lista.
  4. Cambia la zona horaria si tu servidor está en otra distinta de UTC: cron significa hora de reloj de pared, así que la respuesta se mueve con ella.
Zona horaria
Prueba una
Guardar esta herramienta

Ten Expresión cron a mano

Añadir a marcadores

Sobre esta herramienta

Una expresión cron son cinco campos y ninguna indulgencia. */15 3 * * 1-5 es exactamente lo que querías o un trabajo que se ejecuta noventa y seis veces al día en lugar de cuatro, y nada en la sintaxis te dice cuál de las dos cosas. Esto te lee la expresión en forma de frase y luego hace lo que de verdad detecta los errores: te muestra las próximas veces que el trabajo se disparará realmente. Las horas de ejecución son lo importante. Una descripción se puede leer tal como ya crees que funciona; las fechas no. Si esperabas un lunes y la lista dice martes, has encontrado el fallo antes de que él te encontrara a ti. Entiende todo el crontab estándar: rangos, listas, pasos, nombres de tres letras para meses y días de la semana, y la familia de atajos @daily. También avisa de la única regla que nadie adivina. Cuando fijas a la vez un día del mes y un día de la semana, cron se ejecuta cuando coincide cualquiera de los dos, así que 0 0 13 * FRI no es viernes 13: es todos los días 13 más todos los viernes. Ese único malentendido está detrás de más correos sorpresa que todos los demás errores de cron juntos. Todo ocurre en tu navegador. Nada de tu planificación se envía a ninguna parte.

Preguntas frecuentes

¿Qué hace esta expresión cron?

Pégala arriba y la descripción lo dice en lenguaje llano, seguida de las cinco próximas veces que se disparará de verdad. Las horas de ejecución son la parte que merece comprobarse: una descripción se puede leer como ya supones que funciona, y las fechas no.

¿Qué significan los cinco campos?

En 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 tanto 0 como 7 son domingo). Un asterisco significa cada valor de ese campo.

¿Por qué mi trabajo se ejecuta en días que no pedí?

Casi siempre por la regla del día del mes y el día de la semana. Cuando los dos campos están fijados a algo distinto de *, cron se ejecuta cuando coincide cualquiera de los dos y no ambos. Así que 0 0 13 * FRI se dispara cada día 13 y cada viernes. Para tener viernes 13 necesitas una comprobación dentro del propio trabajo: cron no puede expresarlo.

¿Qué significa realmente */15?

Cada 15.º valor de ese campo, contando desde el principio. En el campo de minutos eso son :00, :15, :30 y :45 de cada hora. No es «cada 15 minutos a partir de ahora»: la planificación va atada al reloj, así que un trabajo iniciado a las 07:20 sigue ejecutándose a las 07:30.

¿Qué zona horaria usan las ejecuciones?

La que elijas, y sí importa. Un crontab significa hora de reloj de pared en la zona del servidor, así que 0 3 * * * son las tres de la madrugada allí, y siguen siendo las tres de la madrugada a través de un cambio de hora aunque uno de esos días dure 23 horas. Pon la zona horaria del servidor, no la tuya.

¿Admite segundos, o L y W?

No, deliberadamente. Las expresiones de seis campos con segundos son de Quartz, y L, W y # son extensiones de Quartz y Spring. Aceptarlas aquí te diría que una expresión está bien cuando el cron en el que la vas a pegar la rechazará.

Ayuda a mejorar esta herramienta

¿Has encontrado un fallo, quieres un cambio o te falta alguna herramienta?

/cron-expression

↑↓ para moverte · Enter para abrir · Esc para cerrar