Generador de expresiones cron

Crea una expresión cron con un formulario sencillo, o pega una y lee lo que significa en palabras claras. Las próximas 10 ejecuciones aparecen en tu zona horaria, con los cambios de horario de verano marcados.

Gratis y privado. Todo funciona en tu navegador y no se sube nada.

Cómo funciona

  1. Elige una programaciónParte de una programación común o ajusta cada campo en el formulario: todos, cada n, valores concretos o un rango.
  2. Léela de vueltaLa expresión se explica en palabras sencillas, así compruebas que hace lo que querías.
  3. Revisa las próximas ejecucionesCompara las próximas 10 ejecuciones en la zona horaria de tu servidor y copia la expresión.

Qué significa una expresión cron

Una expresión cron estándar tiene cinco campos separados por espacios: minuto, hora, día del mes, mes y día de la semana. Un asterisco significa todos los valores, una coma separa una lista (1,15), un guion marca un rango (9-17) y una barra indica un paso (*/15 es cada 15 minutos). Así, 30 2 * * 1-5 se ejecuta a las 2:30 de la madrugada de lunes a viernes.

Pega cualquier expresión y la herramienta la describe en una frase, muestra cada campo por separado y calcula las próximas diez ejecuciones. También entiende atajos como @daily y @hourly. Si algo está mal, el mensaje indica el campo y la posición en lugar de un error de sintaxis vago.

Trampas que pillan incluso a los expertos

Cuando están definidos tanto el día del mes como el día de la semana, el cron clásico se ejecuta los días que cumplen cualquiera de los dos, no ambos: 0 0 13 * 5 se ejecuta cada día 13 y además cada viernes. Si uno de los dos campos empieza por asterisco, como en */2, deben cumplirse los dos. La explicación lo avisa siempre que ocurre.

Cron usa la zona horaria de la máquina en la que se ejecuta. Una tarea a las 2:30 no se ejecuta la noche en que los relojes se adelantan en muchos países, y una tarea a la 1:30 puede encontrarse dos veces con la misma hora cuando se atrasan. Elige la zona horaria de tu servidor en la lista de ejecuciones para ver exactamente qué días se ven afectados. Los meses sin día 31 simplemente se saltan.

Estándar, con segundos y Quartz

El crontab de Linux, los CronJobs de Kubernetes y GitHub Actions usan la forma de cinco campos. Algunas bibliotecas añaden un campo de segundos delante. Quartz, que usan muchos programadores de tareas en Java, tiene segundos y un año opcional, numera los días de la semana del 1 al 7 empezando por el domingo y exige ? en uno de los campos de día. Además añade L para el último día, W para el día laborable más cercano y # para el enésimo día de la semana del mes. Elige la sintaxis arriba; al cambiarla, la expresión se convierte cuando es posible.

Preguntas frecuentes

¿Qué significa */5 * * * *?

Se ejecuta cada 5 minutos, en el minuto 0, 5, 10 y así sucesivamente de cada hora, todos los días.

¿Qué zona horaria usa cron?

La del sistema que lo ejecuta, que en los servidores suele ser UTC. Kubernetes y algunos programadores en la nube permiten indicar una zona horaria. Elige la zona correcta en la lista de ejecuciones para ver las horas reales.

¿Cómo ejecuto una tarea el último día del mes?

El cron estándar no tiene un símbolo para eso. Quartz admite L en el campo del día del mes, por ejemplo 0 0 0 L * ?. En el cron clásico, una solución habitual es ejecutarla los días 28 a 31 y comprobar la fecha en el script.

¿Por qué mi tarea no se ejecuta el día 31 todos los meses?

Porque muchos meses tienen menos días. Cron se salta esos meses en lugar de ejecutarse el último día.

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

No. Todo, incluidas las horas de ejecución, se calcula en tu navegador.

¿Funciona sin conexión?

Sí. Después de abrir la página una vez, sigue funcionando sin conexión a internet.