Generador de Expresiones Cron

DesdePaso
CadaMinuto
DesdeHasta
* * * * *

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 crontab2, 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:

  1. El Estándar POSIX1 define la especificación mínima compatible para cron, requiriendo al menos soporte para los símbolos *, , y -.
  2. 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ímboloDescripciónEjemplo
*Coincide con cualquier valor* en el campo de minutos = cada minuto
,Especifica múltiples valores1,3,5 = minutos 1, 3 y 5
-Define un rango10-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ímboloDescripciónEjemplo 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
WDí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ónCaracterísticasEnlace a Recursos Oficiales
CroniePredeterminado en sistemas Red Hat, admite atajos @GitHub de Cronie
systemdReemplaza cron con unidades .timer (recomendado para nuevos sistemas)Manual de systemd.timer
fcronAdmite sintaxis más compleja (como @yearly)Sitio web de fcron

V. Herramientas de Verificación Recomendadas y Referencias Autorizadas

  1. Página del Manual de Crontab
    Escriba man 5 crontab en la terminal para ver la sintaxis completa; esta es la referencia autorizada local más directa.

  2. Generadores de Expresiones Cron

  3. 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

  1. Estándar POSIX: Definición de Cron 2

  2. Página del manual de Linux man 5 crontab

  3. Documentación oficial de Cronie: Wiki de GitHub 2

  4. Referencia de IBM Cron: Explicación del Formato Cron 2

  5. Sintaxis Cron de Quartz: Documentación de Quartz Scheduler

  6. Historia de Vixie cron: Wiki de Vixie cron

  7. Manual de cron de Debian: CronHowto de Debian

  8. Manual de systemd.timer: Documentación oficial de systemd

  9. Guía de Cron de Ubuntu: Documentación comunitaria de Cron de Ubuntu