Generador de Expresiones Cron
Próximas Ejecuciones
Explicación de Expresiones Cron
Formato de Expresiones Cron
I. Estructura Básica de una Expresión Cron (con Fuentes Autorizadas)
Una expresión cron estándar consta de 5 campos de tiempo y 1 campo de comando, siguiendo las convenciones generales de los sistemas Unix y Linux. Según el Estándar IEEE Std 1003.1-2017 (POSIX)1 y la documentación de Linux man 5 crontab
2, el formato es el siguiente:
* * * * * comando-a-ejecutar
│ │ │ │ │
│ │ │ │ └── Día de la semana (0-7, tanto 0 como 7 representan domingo)
│ │ │ └──── Mes (1-12)
│ │ └────── Día del mes (1-31)
│ └──────── Hora (0-23)
└────────── Minuto (0-59)
Explicación Autorizada:
- El Estándar POSIX1 define la especificación mínima compatible para cron, requiriendo al menos soporte para los símbolos
*
,,
y-
.- Las implementaciones de
cron
en sistemas Linux (como Cronie) extienden la funcionalidad con características adicionales como valores de paso (/
) y cadenas especiales (@daily
, etc.), que se pueden consultar en su documentación oficial3.
II. Reglas de Símbolos para Campos de Tiempo
Cada campo de tiempo admite los siguientes símbolos especiales:
Símbolo | Descripción | Ejemplo |
---|---|---|
* | Coincide con cualquier valor | * en el campo de minutos = cada minuto |
, | Especifica múltiples valores | 1,3,5 = minutos 1, 3 y 5 |
- | Define un rango | 10-15 = minutos del 10 al 15 |
/ | Paso (intervalo periódico) | */5 en el campo de minutos = cada 5 minutos |
? | Solo para campos de día y semana, significa "no especificado" | Usado para evitar conflictos |
Las implementaciones modernas de cron (como Vixie cron y sus derivados) admiten una sintaxis más rica. Según la Documentación de Referencia de IBM Cron4 y la Wiki del Proyecto Cronie3, los siguientes símbolos son ampliamente compatibles:
Símbolo | Descripción | Ejemplo de Documentación Oficial |
---|---|---|
L | Último día del mes (solo en algunas implementaciones) | 0 0 L * * = ejecutar el último día de cada mes5 |
W | Día laborable más cercano (como 15W para el día laborable más cercano al 15) | Consultar la Documentación de Quartz Scheduler6 (común en el ecosistema Java, parcialmente compatible con cron) |
III. Origen de los Alias Predefinidos (@daily, etc.)
Los alias como @daily
, @weekly
, etc., se originaron en la implementación de cron desarrollada por Paul Vixie (Vixie cron, lanzada en 1987)7, y se han convertido en características estándar en las distribuciones Linux modernas (como Debian, Red Hat). Según el Manual de cron
de Debian8:
# Equivalente a 0 0 * * *
@daily /ruta/al/script
IV. Diferencias Comunes entre Implementaciones y Consideraciones
Diferentes implementaciones de cron pueden tener sutiles diferencias; consulte la documentación correspondiente:
Nombre de Implementación | Características | Enlace a Recursos Oficiales |
---|---|---|
Cronie | Predeterminado en sistemas Red Hat, admite atajos @ | GitHub de Cronie |
systemd | Reemplaza cron con unidades .timer (recomendado para nuevos sistemas) | Manual de systemd.timer |
fcron | Admite sintaxis más compleja (como @yearly ) | Sitio web de fcron |
V. Herramientas de Verificación Recomendadas y Referencias Autorizadas
-
Página del Manual de Crontab
Escribaman 5 crontab
en la terminal para ver la sintaxis completa; esta es la referencia autorizada local más directa. -
Generadores de Expresiones Cron
- Documentación de IBM Cron4 (ejemplos de casos empresariales)
-
Documentación de Proyectos de Código Abierto
VI. Conclusión
Combinando el estándar POSIX, las páginas del manual de Linux y la documentación de implementaciones principales (como Cronie), los usuarios pueden dominar con precisión la lógica central de las expresiones cron. Para usos avanzados (como L
y W
), tenga en cuenta la compatibilidad entre diferentes implementaciones y consulte preferentemente recursos oficiales.
Footnotes
-
Estándar POSIX: Definición de Cron ↩ ↩2
-
Página del manual de Linux
man 5 crontab
↩ -
Documentación oficial de Cronie: Wiki de GitHub ↩ ↩2
-
Referencia de IBM Cron: Explicación del Formato Cron ↩ ↩2
-
Sintaxis Cron de Quartz: Documentación de Quartz Scheduler ↩
-
Historia de Vixie cron: Wiki de Vixie cron ↩
-
Manual de cron de Debian: CronHowto de Debian ↩
-
Manual de systemd.timer: Documentación oficial de systemd ↩
-
Guía de Cron de Ubuntu: Documentación comunitaria de Cron de Ubuntu ↩