Generador de expresiones cron
Escribe un horario cron y mira exactamente cuándo se ejecuta.
Próximas 10 ejecuciones
Chuleta de sintaxis cron
| Campo | Valores permitidos |
|---|---|
| Minuto | 0-59 |
| Hora | 0-23 |
| Día del mes | 1-31 |
| Mes | 1-12 o JAN-DEC |
| Día de la semana | 0-6 o SUN-SAT (7 también es domingo) |
| Símbolo | Significado |
|---|---|
* | Cualquier valor |
, | Una lista de valores, como 1,15 |
- | Un rango, como 1-5 |
/ | Un paso, como */15 para cada valor número 15 |
Funciona en tu navegador. Nada de lo que escribes se envía a ningún sitio.
- Explicación en lenguaje sencillo
- Próximas 10 ejecuciones
- Preajustes para tareas comunes
Cómo escribir una expresión cron
- Elige un preajuste, o escribe una expresión con cinco campos.
- Ajusta campos individuales en los cuadros de abajo.
- Revisa la explicación y las próximas ejecuciones, y copia la expresión.
Horarios cron comunes
| Horario | Expresión | Significado |
|---|---|---|
| Cada minuto | * * * * * | Se ejecuta 60 veces por hora |
| Cada 5 minutos | */5 * * * * | A las :00, :05, :10 y así sucesivamente |
| Cada noche a las 2am | 0 2 * * * | Una vez cada 24 horas |
| Días laborables a las 9am | 0 9 * * 1-5 | Solo de lunes a viernes |
| El primero de mes | 0 0 1 * * | Medianoche del día 1 |
| Cada 6 horas | 0 */6 * * * | Medianoche, 6am, mediodía, 6pm |
Cómo difiere cron entre sistemas
El formato de 5 campos de abajo es el que crea este generador, y también es el que usan directamente la mayoría de los programadores de tareas.
| Sistema | Campos | Nota |
|---|---|---|
| Cron / crontab estándar | 5 | Minuto, hora, día del mes, mes, día de la semana |
| CronJob de Kubernetes | 5 | Mismo formato, entre comillas como cadena en YAML |
| GitHub Actions | 5 | Se pone en on.schedule.cron, siempre se ejecuta en UTC |
| Quartz (Java) | 6 o 7 | Añade un campo de segundos antes del minuto |
| AWS EventBridge | 6 | Añade un campo de año y usa ? para el día del mes o de la semana |
Copia la expresión de aquí a un horario de Quartz o AWS y añade el campo extra que espera; las posiciones de minuto, hora, día, mes y día de la semana se mantienen igual.
Consejos para escribir horarios cron
- Prefiere un paso a una lista larga: */15 * * * * es más corto y claro que 0,15,30,45 * * * *.
- Poner a la vez el día del mes y el día de la semana restringe menos de lo que parece: el cron estándar ejecuta la tarea cuando coincide cualquiera de los dos, no solo cuando coinciden ambos.
- Prueba un horario aquí antes de pegarlo en un servidor. Un solo campo equivocado puede convertir una tarea diaria en una que se dispara cada minuto.
- Los servidores suelen ejecutar cron en UTC. La lista de próximas ejecuciones de arriba se muestra en tu propia zona horaria, así que conviértela antes de dar por hecho que una tarea se ejecutó a tiempo.
Preguntas frecuentes sobre Generador de expresiones cron
¿Qué significan los cinco campos de una expresión cron?
De izquierda a derecha: minuto (0-59), hora (0-23), día del mes (1-31), mes (1-12) y día de la semana (0-6, donde 0 es domingo). Un asterisco significa cualquier valor, así que * * * * * se ejecuta cada minuto.
¿Cómo ejecuto una tarea cron cada 5 minutos?
Usa */5 * * * *. El /5 significa cada quinto valor, así que se ejecuta en los minutos 0, 5, 10 y así sucesivamente, cada hora de cada día.
¿Qué pasa cuando pongo día del mes y día de la semana a la vez?
El cron estándar ejecuta la tarea cuando coincide cualquiera de los dos. 0 0 1 * 1 se ejecuta a medianoche el día 1 de cada mes y también cada lunes.
¿Qué zona horaria usa cron?
La zona horaria del servidor que lo ejecuta, que a menudo es UTC. Las horas de ejecución de esta página se muestran en tu propia zona horaria, así que conviértelas si tu servidor usa una distinta.
¿Funciona este formato para Kubernetes, GitHub Actions, Quartz o AWS?
Los CronJobs de Kubernetes y los horarios de GitHub Actions usan este mismo formato de 5 campos. Quartz añade un campo de segundos, y AWS EventBridge añade un campo de año y usa ? en uno de los campos de día, así que esos necesitan ajustes.
¿Cómo ejecuto una tarea solo entre semana o solo los fines de semana?
Pon el día de la semana en 1-5 para de lunes a viernes, o 0,6 para sábado y domingo. Deja el día del mes y el mes como * para que no restrinjan nada más.
¿Qué significan atajos como @daily y @hourly?
Son macros que algunas implementaciones de cron aceptan en lugar de cinco campos. @hourly es 0 * * * *, @daily es 0 0 * * *, @weekly es 0 0 * * 0, @monthly es 0 0 1 * * y @yearly es 0 0 1 1 *. Escribe cualquiera de ellos en el cuadro de expresión de aquí y se expande automáticamente.