Cómo usar: Generador de expresiones cron
- Elige un horario común, o usa Crear un horario para elegir la frecuencia, los días de la semana y la hora, y luego haz clic en Usar este horario.
- O pega una expresión existente, como
30 2 * * 1, en el cuadro Expresión cron: la descripción en lenguaje sencillo se actualiza mientras escribes. - Ajusta cada parte por separado en Editar campos (minuto, hora, día del mes, mes y día de la semana).
- Revisa la lista de Próximas ejecuciones en hora local o UTC, y luego copia la expresión en tu crontab, flujo de CI o programador de tareas.
¿Qué es una expresión cron?
Una expresión cron es un horario compacto formado por cinco campos separados por espacios que indica al demonio cron de Unix, y a herramientas basadas en la misma sintaxis como GitHub Actions, GitLab CI, Kubernetes CronJobs, Vercel y muchas colas de tareas, cuándo ejecutar una tarea. Este generador te permite crear una expresión con menús desplegables, explica cualquier expresión en lenguaje sencillo con la biblioteca de código abierto cRonstrue y calcula las próximas ejecuciones para que verifiques un horario antes de que entre en funcionamiento.
Los cinco campos
┌──────── minuto (0–59)
│ ┌────── hora (0–23)
│ │ ┌──── día del mes (1–31)
│ │ │ ┌── mes (1–12, JAN–DEC)
│ │ │ │ ┌ día de la semana (0–6, SUN–SAT)
│ │ │ │ │
* * * * * comando
En el campo de día de la semana, el 7 también significa domingo.
Cada campo acepta * (cualquier valor), un número, un rango 1-5, una lista 1,15,30, un paso */10 o un rango con paso 9-17/2. Algunos programadores (Quartz, Spring, AWS EventBridge) añaden un campo inicial de segundos; marca “Campo de segundos” para trabajar con expresiones de 6 partes.
Ejemplos
| Expresión | Significado |
|---|---|
*/5 * * * * | Cada 5 minutos |
0 * * * * | Al inicio de cada hora |
30 2 * * * | Todos los días a las 02:30 |
0 9 * * 1-5 | A las 09:00 entre semana |
0 0 1 * * | A medianoche el día 1 de cada mes |
0 0 1 */3 * | A medianoche el primer día de cada trimestre |
15 14 1 * * | A las 14:15 el día 1 de cada mes |
Errores comunes
- Día del mes y día de la semana. Si ambos campos están restringidos, el cron clásico ejecuta la tarea cuando coincide cualquiera de los dos.
0 0 13 * 5significa “el día 13 y todos los viernes”, no “el viernes 13”. La lista de próximas ejecuciones sigue esta regla. - Olvidar el minuto.
* 9 * * *se ejecuta 60 veces entre las 09:00 y las 09:59. Usa0 9 * * *para ejecutarla una sola vez. - Zonas horarias. Cron usa la zona horaria del servidor; GitHub Actions y la mayoría de programadores en la nube usan UTC. Cambia la lista de ejecuciones a UTC para compararlas.
- Pasos irregulares.
*/45en el campo de minutos se dispara a :00 y :45, y luego de nuevo a :00: los pasos se reinician cada hora, no se arrastran. - Números de día en Quartz. Quartz cuenta el domingo como 1, mientras que cron de Unix usa 0 (o 7). Esta herramienta usa la numeración de Unix.
Extensiones no estándar
L en el campo de día del mes (último día del mes), 5L (último viernes) y 1#2 (segundo lunes) son compatibles con Quartz y algunas implementaciones de cron, pero no con Vixie cron en Linux. Aquí se explican y se previsualizan, pero comprueba que tu programador los acepte. ¿Necesitas convertir una hora de ejecución a un valor epoch? Prueba el Convertidor de Timestamp Unix o el Convertidor de Zonas Horarias.
También se busca como: crontab, generador cron, explicador cron, sintaxis cron, crontab guru, horario cron, tarea cron, parser cron.
Herramientas que combinan con: Generador de expresiones cron
- Generador de servicios systemd — Ejecuta tu app como un servicio de Linux que arranca con el sistema y se reinicia si falla.
- Calculadora de días entre fechas — Cuenta los días entre dos fechas, incluidos los días hábiles y un desglose en años, meses y días.
- Probador de expresiones regulares — Escribe un patrón y observa cómo se resaltan las coincidencias en tiempo real en tu texto de prueba.
- Formateador HTML — Pega HTML minificado o desordenado y obtén HTML limpio y con sangría coherente, incluidos los bloques <style> y <script> incrustados.
Preguntas frecuentes
¿Qué significa */15 en cron?
*/15 en el campo de minutos significa cada 15 minutos empezando en 0, es decir, :00, :15, :30 y :45. 5-50/15 daría :05, :20, :35 y :50.¿Cómo ejecuto un trabajo cron cada 30 segundos?
*/30 * * * * *), o añade dos líneas en el crontab, donde la segunda empiece con sleep 30;.¿La hora de cron es UTC o local?
CRON_TZ). GitHub Actions, Kubernetes (por defecto) y la mayoría de programadores en la nube evalúan las expresiones en UTC. La lista de ejecuciones aquí puede mostrar cualquiera de las dos.¿Cuál es la diferencia entre @daily y 0 0 * * *?
@daily (o @midnight) es una abreviatura de 0 0 * * *. Del mismo modo, @hourly = 0 * * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * * y @yearly = 0 0 1 1 *.¿Cómo programo un trabajo para el último día del mes?
L si tu programador lo admite (0 0 L * *), o ejecutar diariamente los días 28–31 y comprobar la fecha en el comando: 0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && ./job.sh.¿Por qué mi expresión nunca se ejecuta?
0 0 31 2 * (31 de febrero) o 0 0 31 4 * (31 de abril), nunca coinciden. La lista de próximas ejecuciones muestra una advertencia cuando no encuentra ninguna ejecución en los próximos diez años.