Generador de expresiones cron

Construye la expresión, léela en español y comprueba las fechas exactas en las que se va a ejecutar. Con aviso de los dos errores que se repiten en todas las migraciones: la zona horaria y la regla del «o».

  • Gratis
  • Sin registro
  • Todo en tu navegador
  • Con próximas ejecuciones

0–59

0–23

1–31

1–12 o JAN–DEC

0–7 o SUN–SAT

Ejemplos habituales

¿Cómo se usa?

  1. 01

    Escribe o elige

    Pulsa uno de los ejemplos, escribe la expresión entera o rellena los cinco campos por separado. Todo está sincronizado.

  2. 02

    Léela en español

    La descripción se reescribe con cada tecla. Si no dice lo que querías, la expresión no hace lo que querías.

  3. 03

    Comprueba las fechas

    Las próximas cinco ejecuciones, en tu hora y en UTC. Es la comprobación que evita la mayoría de los sustos.

Los símbolos

*
Todos los valores del campo. En el minuto significa «los sesenta».
,
Lista de valores sueltos: 1,15,30 son esos tres y ninguno más.
-
Rango, extremos incluidos: 1-5 en el día de la semana es de lunes a viernes.
/
Paso: */15 es cada quince, y 10-50/10 es cada diez entre el 10 y el 50.
JAN, MON
Nombres de tres letras en inglés, en los campos de mes y día de la semana.
0 y 7
Los dos son domingo en el campo de día de la semana. No es una errata.

Los atajos

@hourly
0 * * * *
@daily · @midnight
0 0 * * *
@weekly
0 0 * * 0
@monthly
0 0 1 * *
@yearly · @annually
0 0 1 1 *
@reboot
Al arrancar la máquina. No es una hora, así que no tiene próximas ejecuciones.

Los atajos se aceptan arriba: escribe @daily y la herramienta lo traduce a sus cinco campos.

Programar la tarea es la parte fácil

Lo difícil viene después: qué pasa si la tarea falla de madrugada y nadie se entera, qué pasa si tarda más de lo que dura el intervalo y se solapa consigo misma, y qué pasa si el servidor estaba apagado a esa hora. Un cron no reintenta, no avisa y no deja rastro si no se lo montas tú.

Ese es justo el trabajo que hacemos cuando automatizamos un proceso: la ejecución programada es una línea; el registro, los reintentos y el aviso cuando algo no cuadra son el resto.

Cómo automatizamos procesos →

Preguntas frecuentes

¿En qué zona horaria se ejecuta un cron?

En la del sistema que lo ejecuta, y ahí está el problema: casi todos los servidores y casi todas las plataformas de despliegue trabajan en UTC. Si escribes «0 9 * * *» pensando en las nueve de la mañana en Bogotá, en un servidor en UTC eso son las cuatro de la madrugada. Por eso esta herramienta muestra cada ejecución en las dos horas y te deja elegir cómo interpretar la expresión.

¿Por qué mi tarea se ejecuta días que no debería?

Casi seguro por la regla del «o». Cuando el día del mes y el día de la semana están los dos restringidos, cron ejecuta si casa cualquiera de los dos. «0 0 1 * 1» no es «el día 1 si cae en lunes»: es «el día 1 y además todos los lunes». Para pedir la intersección hay que dejar uno en asterisco y comprobar el otro dentro de tu propio script.

¿Qué diferencia hay entre cinco y seis campos?

El formato clásico de crontab tiene cinco: minuto, hora, día del mes, mes y día de la semana. Quartz —el planificador de Java que usan muchas herramientas empresariales— añade los segundos al principio y a veces el año al final, y usa «?» donde crontab usa «*». Si pegas una expresión de seis campos aquí, la herramienta te lo dice en vez de interpretarla mal.

¿Cada cuánto es «*/7» en los minutos?

Cada siete minutos dentro de cada hora, pero no cada siete minutos seguidos: dispara en el 0, 7, 14… hasta el 56, y el siguiente es el 0 de la hora siguiente, cuatro minutos después. El paso se reinicia con cada hora. Si necesitas un intervalo de verdad constante, usa un paso que divida a 60: 2, 3, 4, 5, 6, 10, 12, 15, 20 o 30.

¿Se envía mi expresión a algún servidor?

No. El análisis, la descripción y el cálculo de fechas ocurren en tu navegador con aritmética normal. No hay peticiones de red, no se guarda nada y este sitio no usa cookies de seguimiento.

¿Los cambios de hora afectan a las próximas ejecuciones?

Sí, y de forma incómoda. Si interpretas la expresión en una zona con horario de verano, la noche del cambio puede haber una hora que no existe o una que ocurre dos veces, y cada implementación de cron lo resuelve a su manera. Aquí las fechas se calculan con la zona de tu navegador, así que sirven de orientación; si la tarea es crítica, prográmala en UTC y te ahorras el problema entero.

¿Puedo usar L, W o # ?

No en el cron de siempre. Esos comodines —último día del mes, día laborable más cercano, enésimo día de la semana— son de Quartz y de algunas variantes. El crontab de un servidor Linux no los entiende, así que esta herramienta tampoco los acepta: preferimos rechazarlos a que descubras en producción que tu servidor no los soporta.

¿Y si la tarea falla un domingo a las tres?

Programar una ejecución es una línea. Que alguien se entere cuando no ocurre, que se pueda reintentar y que quede registro es lo que convierte un cron en un proceso fiable.

Respondemos en menos de 24 horas hábilesBogotá · UTC−5

Escríbenos por WhatsApp (se abre en una pestaña nueva)