Generador de expresiones cron
Crea y explica horarios cron en lenguaje claro, con las próximas ejecuciones. Todo se ejecuta localmente: no se sube nada.
- Entrada
- Cron expression · schedule picker
- Salida
- Plain-language schedule · next run times
* cualquiera · , lista · - rango · / paso · nombres JAN–DEC y SUN–SAT · 7 también es domingo
Próximas 10 ejecuciones
Las horas que se salta el horario de verano se ejecutan justo después del cambio; las horas repetidas se ejecutan una vez, salvo con horas comodín.
Sintaxis crontab estándar. Quartz y AWS EventBridge usan campos distintos (segundos, años, ? y 1 = domingo).
¿Buscar coincidencias en texto en vez de horas? Abrir el regex tester
Crea y explica expresiones cron
Este generador de expresiones cron convierte un horario en sintaxis crontab y viceversa. Escribe o pega una expresión para leerla como una frase clara, o créala campo a campo con los controles, y comprueba las diez próximas ejecuciones en cualquier zona horaria, teniendo en cuenta los cambios de horario de verano. Sigue las reglas del cron de cualquier servidor Linux, incluidas las que pillan desprevenido a más de uno, y todo se calcula en tu navegador.
Cómo escribir una expresión cron
- Parte de un preajuste como Laborables a las 9:00, o escribe una expresión como
*/15 9-17 * * 1-5. - Lee la frase bajo el campo para confirmar que el horario significa lo que crees.
- Ajusta un campo en el constructor: elige minuto, hora, día del mes, mes o día de la semana, y luego cada, cada N, valores concretos o un rango. La expresión se actualiza al hacer clic.
- Elige la zona horaria que usa tu servidor o programador, comprueba las próximas ejecuciones y copia la expresión en tu crontab, flujo de CI o programador de tareas.
Sintaxis cron: los cinco campos
Una línea crontab estándar tiene cinco campos separados por espacios, seguidos del comando: minute hour day-of-month month day-of-week. Algunos programadores, como node-cron y Spring, aceptan un sexto campo opcional para los segundos al principio; esta herramienta lee ambas formas.
- Minuto
- 0–59
- Hora
- 0–23, en formato de 24 horas
- Día del mes
- 1–31
- Mes
- 1–12 o JAN–DEC
- Día de la semana
- 0–6 o SUN–SAT, donde 0 es domingo y 7 también se acepta como domingo
- Segundos (opcional)
- 0–59, como sexto campo delante del minuto
Caracteres especiales y atajos
*significa cualquier valor:* * * * *se ejecuta cada minuto.,enumera valores:0 8,12,18 * * *se ejecuta a las 08:00, 12:00 y 18:00.-es un rango:0 9 * * 1-5se ejecuta a las 09:00 de lunes a viernes./es un paso:*/5 * * * *es cada cinco minutos, y1-10/2significa 1, 3, 5, 7 y 9.- Atajos:
@hourly,@daily(o@midnight),@weekly,@monthlyy@yearly(o@annually).@rebootse ejecuta una vez cuando arranca el demonio cron, así que no tiene próxima ejecución.
La trampa del día del mes y el día de la semana
Cuando ambos campos de día están restringidos, cron ejecuta la tarea cuando coincide cualquiera de los dos, no cuando coinciden ambos. Por eso 0 0 13 * 5 se ejecuta el día 13 de cada mes y todos los viernes, no solo los viernes 13. Si cualquiera de los dos campos empieza por *, se combinan con Y como cabría esperar. La explicación y las ejecuciones que se muestran aquí siguen esa regla al pie de la letra.
Los días que no existen en un mes simplemente se omiten: 0 0 31 * * solo se ejecuta en los meses de 31 días, y 0 0 29 2 * solo en años bisiestos. Para ejecutar el último día de cada mes con cron estándar, programa los días 28–31 y comprueba la fecha en el comando.
Ejemplos de horarios cron
Pega cualquiera de estos en el generador para leerlo como una frase y ver exactamente cuándo se ejecutará a continuación. Un horario que en tu cabeza parece correcto merece comprobarse con fechas reales antes de llegar a producción, sobre todo si se ejecuta cada mes o cada año y tardaría semanas en revelar un error.
- */10 * * * *
- Cada 10 minutos: en punto y a y 10, y 20, y 30, y 40 y y 50.
- 0 */6 * * *
- Cada seis horas: a las 00:00, 06:00, 12:00 y 18:00.
- 30 2 * * *
- Cada noche a las 02:30, una franja habitual para copias de seguridad (pero mira la nota sobre el horario de verano más abajo).
- 0 9 * * MON-FRI
- A las 09:00 los días laborables.
- 0 0 1 * *
- A medianoche el primer día de cada mes, igual que @monthly.
- 0 0 1 1,4,7,10 *
- A medianoche al inicio de cada trimestre.
- */30 * * * * *
- Cada 30 segundos, en el formato de seis campos con segundos.
Zonas horarias y horario de verano
Cron usa el reloj de la máquina en la que se ejecuta, que en la mayoría de los servidores es UTC. Elige esa zona en la lista de próximas ejecuciones para ver lo que hará realmente tu tarea. En los cambios de horario de verano, una hora que se salta al adelantar los relojes se ejecuta justo después del cambio (las 02:30 pasan a ser las 03:30), y una hora que se repite al atrasarlos se ejecuta una vez; las tareas cuyo campo de hora es un comodín siguen ejecutándose durante las dos copias de la hora repetida, como hace Vixie cron.
Otros programadores usan otros dialectos. Quartz (Java) y AWS EventBridge usan seis o siete campos con segundos y años, exigen ? en uno de los dos campos de día y cuentan los días de la semana desde 1 para el domingo; GitHub Actions y los CronJobs de Kubernetes usan los cinco campos estándar en UTC. Comprueba qué formato espera tu plataforma antes de pegar.
¿Quieres probar un patrón y no un horario? Prueba el regex tester.
Preguntas frecuentes
- ¿Qué significa * * * * * en cron?
- Cinco asteriscos significan cada minuto de cada hora de cada día. Es el horario más frecuente que permite el cron estándar; para algo más frecuente necesitas un programador con campo de segundos.
- ¿Cómo ejecuto una tarea cron cada 5 minutos?
- Usa */5 * * * *. El paso */5 en el campo de minutos coincide con los minutos 0, 5, 10 y así hasta 55.
- ¿Cómo ejecuto una tarea cron todos los días a medianoche?
- Usa 0 0 * * *, o el atajo @daily (también escrito @midnight). Recuerda que la medianoche es la de la zona horaria del servidor que ejecuta cron, a menudo UTC.
- ¿Cómo programo una tarea cron solo en días laborables?
- Pon 1-5 en el campo de día de la semana, por ejemplo 0 9 * * 1-5 para las 09:00 de lunes a viernes. MON-FRI también funciona.
- ¿El domingo es 0 o 7 en cron?
- Ambos. El cron estándar acepta 0 y 7 para el domingo, y los nombres SUN a SAT. Quartz y AWS son distintos: numeran los días del 1 al 7 empezando por el domingo.
- ¿Por qué mi tarea cron se ejecuta más días de los que esperaba?
- Si fijas a la vez el día del mes y el día de la semana, cron se ejecuta cuando coincide cualquiera de los dos. Pon uno de los dos campos a * para que solo cuente el otro.
- ¿Qué zona horaria usa cron?
- La zona horaria del sistema de la máquina, salvo que el crontab defina CRON_TZ o el programador tenga su propio ajuste. Los programadores en la nube como GitHub Actions usan UTC.
- ¿Cron admite segundos?
- El crontab estándar no; su unidad mínima es el minuto. Bibliotecas como node-cron, Spring y Quartz aceptan un campo de segundos adicional al principio, que esta herramienta también entiende.