Cómo Leer y Entender Expresiones Cron

17 Jun 2026 1,521 words

Cómo Leer y Entender Expresiones Cron

Una expresión cron es una cadena de cinco o seis campos que describe un horario recurrente. Una vez que aprendes el patrón, puedes leer cualquier expresión cron como si fuera texto simple. Esta guía te enseña a decodificar cada elemento de la sintaxis cron, desde simples * * * * * hasta expresiones complejas con rangos, pasos y caracteres especiales.

Los Cinco Campos de Cron

Cada expresión cron tiene cinco campos de tiempo seguidos del comando:

┌───────── Minuto (0-59)
│ ┌──────── Hora (0-23)
│ │ ┌─────── Día del Mes (1-31)
│ │ │ ┌────── Mes (1-12)
│ │ │ │ ┌───── Día de la Semana (0-7, 0 y 7 = Domingo)
│ │ │ │ │
* * * * * <comando>

Leyendo de izquierda a derecha: "¿A qué minuto, a qué hora, en qué día del mes, en qué mes, y en qué día de la semana?"

Leyendo Expresiones Paso a Paso

Ejemplos Simples

0 9 * * *

Se lee como: "En el minuto 0, a la hora 9, cada día del mes, cada mes, cada día de la semana." → Se ejecuta diariamente a las 9:00 AM.

*/15 * * * *

Se lee como: "Cada 15 minutos de cada hora, cada día." → Se ejecuta cada 15 minutos.

30 8 * * 1-5

Se lee como: "En el minuto 30, a la hora 8, cada día del mes, cada mes, de lunes a viernes." → Se ejecuta los días laborables a las 8:30 AM.

0 0 1 * *

Se lee como: "A medianoche del primer día de cada mes." → Se ejecuta mensualmente.

Ejemplos Complejos

0 9-17/2 * * 1-5

Desglosando:

  • 0 — en el minuto 0
  • 9-17/2 — cada 2 horas de 9 a 17 (es decir, 9, 11, 13, 15, 17)
  • * — cada día del mes
  • * — cada mes
  • 1-5 — de lunes a viernes

→ Se ejecuta a las 9:00, 11:00, 13:00, 15:00 y 17:00 los días laborables.

30 6 1,15 * 0

Desglosando:

  • 30 — en el minuto 30
  • 6 — a la hora 6
  • 1,15 — en los días 1 y 15 del mes
  • * — cada mes
  • 0 — solo los domingos

→ Se ejecuta a las 6:30 AM los días 1 y 15 del mes, solo si esos días también son domingos.

Referencia de Caracteres Especiales

* — Cada / Todo

Coincide con cualquier valor para ese campo.

0 * * * *     → "Cada hora"
* * * * *     → "Cada minuto"

, — Lista / O

Separa múltiples valores.

0 9,12,15 * * *     → "A las 9 AM, 12 PM y 3 PM"

- — Rango

Define un rango inclusivo de valores.

0 9-17 * * *        → "Cada hora de 9 AM a 5 PM"
30 8 * * 1-5        → "Días laborables a las 8:30 AM"

/ — Paso

Divide el campo en incrementos.

*/15 * * * *        → "Cada 15 minutos"
0 */2 * * *         → "Cada 2 horas"
0 0 */3 * *        → "Cada 3 días"

Los pasos pueden combinarse con rangos:

0 9-17/2 * * *     → "Cada 2 horas de 9 AM a 5 PM"
30 */4 * * 1-5     → "Cada 4 horas en días laborables, en el minuto 30"

L — Último (algunos sistemas)

En algunas implementaciones de cron (como Quartz), L significa "último."

0 0 L * *          → "Último día de cada mes"

# — Enésima ocurrencia (algunos sistemas)

0 9 * * 1#1        → "Primer lunes de cada mes a las 9 AM"

Expresiones Comunes Decodificadas

Expresión Legible para Humanos Descripción
* * * * * Cada minuto
*/5 * * * * Cada 5 minutos
0 * * * * En el minuto 0 de cada hora Cada hora
0 */2 * * * Cada 2 horas
0 9 * * * Cada día a las 9 AM Diario
0 9,17 * * * Cada día a las 9 AM y 5 PM
0 9 * * 1-5 Días laborables a las 9 AM
30 8 * * 1 Lunes a las 8:30 AM
0 0 1 * * Primero de cada mes Mensual
0 0 1 1 * 1 de enero a medianoche Anual
*/15 9-17 * * 1-5 Cada 15 min durante horas laborables en días laborables
0 0 * * 0 Cada domingo a medianoche Semanal
0 0 */2 * * Cada dos días a medianoche
0 22 * * 5 Cada viernes a las 10 PM

Cron de Seis Campos (Con Segundos)

Algunas implementaciones de cron (como Quartz Scheduler) usan seis campos, añadiendo segundos al inicio:

┌───────── Segundo (0-59)
│ ┌──────── Minuto (0-59)
│ │ ┌─────── Hora (0-23)
│ │ │ ┌────── Día del Mes (1-31)
│ │ │ │ ┌───── Mes (1-12)
│ │ │ │ │ ┌──── Día de la Semana (0-7)
│ │ │ │ │ │
* * * * * * <comando>
0 */5 * * * *     → "Cada 5 minutos, en el segundo 0"
0 0 9 * * *       → "Cada día a las 9:00:00 AM"

Abreviaturas No Estándar

Muchas implementaciones de cron soportan estos alias:

@yearly   → 0 0 1 1 *     → "Una vez al año"
@monthly  → 0 0 1 * *     → "Una vez al mes"
@weekly   → 0 0 * * 0     → "Una vez a la semana"
@daily    → 0 0 * * *     → "Una vez al día"
@hourly   → 0 * * * *     → "Una vez por hora"
@reboot   → (no es horario) → "Ejecutar al inicio"

Traduciendo Cron a Texto Legible

Cuando veas una expresión cron desconocida, decodifícala campo por campo:

Expresión: 45 17 1,15 * 1-5
Campo Valor Significado
Minuto 45 En el minuto 45
Hora 17 A las 5 PM
Día del Mes 1,15 En los días 1 y 15
Mes * Cada mes
Día de la Semana 1-5 De lunes a viernes

Resultado: "A las 5:45 PM en los días 1 y 15 de cada mes, solo si esos días son laborables."

Expresión: 0 0 * * 0
Campo Valor Significado
Minuto 0 A medianoche
Hora 0 A las 0 (medianoche)
Día del Mes * Cada día
Mes * Cada mes
Día de la Semana 0 Domingo

Resultado: "Cada domingo a medianoche."

Errores Comunes al Leer Cron

Error 1: * en día-de-la-semana Y día-del-mes significa que ambos coinciden

Cuando tanto día-del-mes como día-de-la-semana son *, la expresión se ejecuta cualquier día. Pero cuando ambos tienen valores específicos, el trabajo se ejecuta si UNO de los dos coincide — es una condición OR.

0 9 15 * 1

Esto se ejecuta a las 9 AM el día 15 del mes Y cada lunes (no "el día 15 Y lunes"). Para ejecutar solo cuando ambos coincidan, necesitas dos entradas crontab separadas o lógica a nivel de script.

Error 2: Cron usa hora local, no UTC

Cron usa la hora local del sistema. En servidores configurados con UTC, 0 9 * * * se ejecuta a las 9 AM UTC. Siempre verifica la zona horaria del servidor antes de establecer horarios.

Error 3: 0 y 7 son ambos domingo

En el campo día-de-la-semana, tanto 0 como 7 representan domingo. Esto es un legado de las primeras implementaciones Unix.

Herramienta en Línea

La herramienta Analizador de Expresiones Cron en Help2Code decodifica cualquier expresión cron en una descripción legible para humanos. Pega una expresión como */15 9-17 * * 1-5 y ve un desglose campo por campo, próximas ejecuciones y una explicación en texto simple. Construye nuevas expresiones con la herramienta Generador de Comandos de Tareas Cron.

Conclusión

Leer expresiones cron es una habilidad que se vuelve natural con la práctica. Recuerda los cinco campos: minuto, hora, día-del-mes, mes, día-de-la-semana. Usa el comodín * para "cada," rangos con - para intervalos, pasos con / para incrementos, y listas con , para valores específicos. Decodifica cualquier expresión desconocida campo por campo, y usa la herramienta Analizador de Expresiones Cron para verificar tu comprensión.


About this article

Aprende a leer y entender expresiones cron. Decodifica cualquier horario crontab con nuestro analizador de expresiones y domina caracteres especiales, rangos y pasos.


Related Articles


Related Tools

Help2Code Logo
Menu