Cronwise

Fundamentos de expresiones cron: los 5 campos explicados

Un desglose en lenguaje sencillo de la sintaxis cron estándar que puedes aplicar de inmediato

Probar explicador de cron

Por qué las expresiones cron confunden incluso a desarrolladores experimentados

La mayoría de los errores de cron comienzan antes del despliegue, cuando la intención de la programación y la sintaxis divergen. Quieres que un trabajo se ejecute todos los días laborables a las 8 AM, pero un valor mal colocado lo cambia a cada hora o a cada día del mes. La causa raíz es casi siempre la misma: los cinco campos de una expresión cron son compactos, posicionales e implacables.

Una expresión cron estándar es una sola línea de cinco campos separados por espacios. Cada campo se asocia a una unidad de tiempo, y juntos definen una programación repetitiva. No hay etiquetas, no hay palabras clave por defecto, y no hay lugar para la ambigüedad una vez que el programador lee la línea.

Este artículo explica la estructura del formato cron de 5 campos en lenguaje sencillo. Aprenderás qué controla cada campo, cómo funcionan los tokens comunes y dónde ocurren las malinterpretaciones típicas. Cada ejemplo puede verificarse al instante en el Explicador de cron de Cronwise, que te da un desglose en lenguaje natural y una vista previa de las próximas ejecuciones según zona horaria para cualquier expresión que introduzcas.

Ya sea que estés escribiendo tu primera entrada de crontab o revisando una programación que escribió otra persona, entender estos cinco campos es la base de cualquier flujo de trabajo cron que siga después.

Los cinco campos: qué controla cada uno

Cada expresión cron estándar sigue el mismo formato posicional. De izquierda a derecha, los cinco campos son:

PosiciónCampoValores permitidosDescripción
1Minuto0 – 59El minuto de la hora en que se ejecuta el trabajo
2Hora0 – 23La hora del día (formato de 24 horas)
3Día del mes1 – 31El día del calendario
4Mes1 – 12El mes del año
5Día de la semana0 – 7El día de la semana (0 y 7 ambos representan domingo)

Un ejemplo concreto aclara la correspondencia. La expresión 30 8 * * 1-5 significa: en el minuto 30, de la hora 8, cada día del mes, en cada mes, pero solo de lunes a viernes. En lenguaje sencillo: 8:30 AM, de lunes a viernes.

El asterisco (*) es un comodín que coincide con cada valor permitido para ese campo. Cuando lo veas, léelo como "cada" o "todos". Así que * * * * * significa cada minuto de cada hora de cada día — la programación más frecuente posible en cron estándar.

Tokens comunes y cómo funcionan

Más allá del comodín asterisco, los campos cron soportan varios tokens que te permiten expresar rangos, intervalos y listas sin escribir entradas separadas.

Coma (Lista)

Una coma separa valores individuales. 0 9,12,18 * * * se ejecuta a las 9:00 AM, 12:00 PM y 6:00 PM todos los días. Cada valor en la lista se trata de forma independiente.

Guion (Rango)

Un guion define un rango continuo. 0 9-17 * * * se ejecuta al inicio de cada hora desde las 9:00 AM hasta las 5:00 PM. Los rangos son inclusivos en ambos extremos.

Barra (Paso)

Una barra define un intervalo. */15 * * * * se ejecuta cada 15 minutos, comenzando en el minuto 0. Puedes combinar un rango con un paso: 0-30/10 * * * * se ejecuta en los minutos 0, 10, 20 y 30 de cada hora.

Combinación de tokens

Los tokens se pueden mezclar dentro de un solo campo. 0 8-12,18 * * 1-5 se ejecuta al inicio de las horas 8 a 12 y también a la hora 18, pero solo entre semana. Cada campo se evalúa de forma independiente, y el programador se ejecuta cuando los cinco campos coinciden simultáneamente.

Para una guía más detallada de estrategias de lectura, consulta Cómo leer expresiones cron rápidamente, que cubre modelos mentales para interpretar expresiones de un vistazo.

Cómo interpretar programaciones reales

Leer una expresión cron correctamente significa traducir cada campo en orden y luego combinarlos en una sola oración. Aquí hay ejemplos prácticos con sus equivalentes en lenguaje sencillo:

ExpresiónSignificadoCuándo usarlaNotas de riesgo
0 0 * * *Medianoche cada díaTrabajos batch diarios, rotación de logsCarga pesada si muchos trabajos comparten este horario
*/5 * * * *Cada 5 minutosVerificaciones de salud, sondeo de colasAlta frecuencia; confirma que el trabajo es idempotente
0 9 1 * *9:00 AM el 1.° de cada mesReportes mensualesLos meses con menos de 31 días se comportan normalmente
30 2 * * 02:30 AM cada domingoVentana de mantenimiento semanalPuede coincidir con transiciones de horario de verano
0 */2 * * 1-5Cada 2 horas entre semanaSondeo en horario laboralSe ejecuta a las 0, 2, 4 … 22 — no solo en horario laboral

El último ejemplo es una malinterpretación común. */2 en el campo de hora significa cada segunda hora desde las 0, no cada dos horas durante el horario laboral. Si solo quieres de 9 AM a 5 PM, necesitas 0 9-17/2 * * 1-5 en su lugar. Este es exactamente el tipo de error sutil que el explicador de Cronwise detecta al mostrarte las próximas 10 ejecuciones programadas en tu zona horaria.

Casos límite y límites de campos

El formato de 5 campos tiene límites que son fáciles de olvidar. Entenderlos previene fallos silenciosos.

Interacción entre día del mes y día de la semana

En cron estándar, cuando tanto el día del mes (campo 3) como el día de la semana (campo 5) están establecidos en valores que no son comodines, la mayoría de las implementaciones los tratan como una unión: el trabajo se ejecuta si cualquiera de las condiciones es verdadera. Esto significa que 0 9 15 * 1 no significa "el 15 si es lunes". Significa "cada 15 del mes y cada lunes". Esta es una de las sorpresas más frecuentemente reportadas en cron.

Límites de mes y día de la semana

Establecer el día del mes en 31 significa que el trabajo solo se ejecutará en meses que tienen 31 días (enero, marzo, mayo, julio, agosto, octubre, diciembre). Se omitirá silenciosamente en meses más cortos. De manera similar, los valores 0 y 7 para el día de la semana ambos representan domingo, pero mezclarlos en la misma expresión puede causar confusión durante las revisiones de código.

Dependencia de zona horaria

Una expresión cron no contiene información de zona horaria por sí misma. El programador interpreta las horas en la zona horaria que esté configurado para usar, que puede ser UTC, la hora local del servidor o una anulación explícita. Si tu equipo abarca múltiples zonas horarias, siempre confirma la configuración de zona horaria del programador antes de desplegar. Cronwise te permite seleccionar cualquier zona horaria IANA y previsualizar las ejecuciones en consecuencia.

Aplica lo que sabes en el flujo de trabajo de Cronwise

Una vez que entiendas los cinco campos, el siguiente paso es pasar de leer expresiones cron a construirlas con confianza. Cronwise ofrece dos caminos complementarios para esto.

Primero explica, luego genera

Empieza con el Explicador de cron para verificar una expresión existente. Pégala, lee el resumen en lenguaje natural y revisa la tabla de ejecuciones. Si la programación no es lo que pretendías, cambia al Generador de cron para construir la expresión correcta visualmente, campo por campo. El generador elimina las conjeturas de sintaxis al permitirte seleccionar valores de menús desplegables y pestañas.

Lista de verificación antes del despliegue

VerificaciónPor qué importaCriterio de aprobación
El resumen en lenguaje natural coincide con la intenciónDetecta errores de orden de camposLa oración del resumen se alinea con tu objetivo de programación
Las marcas de tiempo de ejecución son correctasDetecta mal uso de tokens (rangos, pasos)Las primeras 5 ejecuciones coinciden con las fechas y horas esperadas
La zona horaria coincide con el entorno objetivoPreviene ejecución desfasada por horasLa zona horaria seleccionada es igual a la zona horaria configurada del programador
Sin advertencias de validaciónDetecta patrones riesgosos tempranamenteCero advertencias o cada advertencia aceptada intencionalmente

Para una guía completa del constructor visual, lee Generador visual de cron: flujo de trabajo paso a paso, que cubre navegación de pestañas, presets guardados y opciones de exportación.

Conclusión: despliega con confianza

El formato cron de 5 campos es engañosamente simple: minuto, hora, día del mes, mes y día de la semana. Dominarlo significa conocer no solo las posiciones de los campos sino también cómo se combinan los tokens, dónde se esconden los casos límite y por qué una verificación de validación de 10 segundos vale la pena cada vez.

Aquí están las reglas clave a llevar contigo:

  • Lee los campos de izquierda a derecha: minuto, hora, día, mes, día de la semana.
  • Un asterisco significa "cada" — no es un marcador de posición ni un valor predeterminado.
  • Rangos, listas y pasos se pueden combinar, pero cada campo se evalúa de forma independiente.
  • Día del mes y día de la semana forman una unión cuando ambos no son comodines — no una intersección.
  • Siempre verifica la zona horaria del programador y previsualiza las próximas ejecuciones antes de desplegar.

Cronwise está diseñado para hacer esta verificación rápida. Pega una expresión, lee la explicación, verifica las ejecuciones y despliega con confianza. Explora todos los artículos sobre cron en Cronwise para seguir aprendiendo, o ve directamente a la herramienta.