Cómo validar expresiones cron: una guía paso a paso
Cómo validar expresiones cron
Las expresiones cron son compactas pero fáciles de equivocar. Una barra mal colocada o un valor fuera de rango puede hacer que un trabajo se ejecute en el momento equivocado, o no se ejecute en absoluto. Validar las expresiones antes de la implementación ahorra horas de depuración cuando una tarea crítica falla silenciosamente.
Errores de sintaxis comunes
Valores fuera de rango
Cada campo acepta un rango específico. Los valores fuera de este rango no son válidos.
# Inválido: el minuto 60 está fuera de rango (0-59)
60 * * * *
# Inválido: la hora 24 está fuera de rango (0-23)
0 24 * * *
Campos faltantes
Una expresión cron requiere exactamente cinco campos. Cuatro campos no es válido; seis campos requieren sintaxis extendida.
# Inválido: solo 4 campos (falta el día de la semana)
0 0 * *
# Inválido: sintaxis de 6 campos sin el soporte adecuado del daemon
0 0 * * * * /command.sh
Cuente siempre: minuto, hora, día del mes, mes, día de la semana.
Valores de paso incorrectos
# Inválido: no se puede avanzar de a 0
*/0 * * * *
# Inválido: el paso excede el máximo del campo
*/61 * * * *
Los valores de paso deben comenzar en 1 y no exceder el máximo del campo.
Cómo validar una expresión cron
Paso 1: dividir en campos
Separe por espacios y verifique exactamente cinco campos:
Expression: 30 6 * * 1-5
Fields: minute=30, hour=6, day=*, month=*, weekday=1-5
Paso 2: validar cada campo
| Campo | Rango permitido | Acepta caracteres especiales |
|-------|--------------|-----------------------|
| Minuto | 0-59 | * , - / |
| Hora | 0-23 | * , - / |
| Día del mes | 1-31 | * , - / |
| Mes | 1-12 | * , - / |
| Día de la semana | 0-7 | * , - / |
Paso 3: verificar conflictos
Algunas expresiones son sintácticamente válidas pero lógicamente sorprendentes:
# Se ejecuta el día 15 O todos los domingos — una condición OR
0 0 15 * 0
El día del mes y el día de la semana juntos crean una condición OR en cron estándar. El trabajo se ejecuta cuando cualquiera de los dos coincide.
Paso 4: obtener una vista previa de los próximos momentos
Genere los momentos de ejecución para verificar visualmente su programación:
Expression: 0 2 * * 1
Next 5 executions:
1. 2026-07-27 02:00:00 (Monday)
2. 2026-08-03 02:00:00 (Monday)
3. 2026-08-10 02:00:00 (Monday)
Si la vista previa no coincide con su intención, corrija la expresión antes de la implementación.
Depuración de trabajos que no se ejecutan
Una expresión válida que no se ejecuta suele ser un problema del sistema:
- Permisos: el script debe tener permiso de ejecución (
chmod +x). - Ruta: cron usa un PATH mínimo. Use siempre rutas absolutas:
/usr/local/bin/mybackup.shnomybackup.sh. - Entorno: cron no carga los perfiles del shell. Exporte las variables dentro del crontab o del propio script.
- Registros: redirija la salida para confirmar la ejecución:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1
Uso de la herramienta validadora
El validador de expresiones cron proporciona tres funciones:
- Validación de sintaxis: retroalimentación inmediata sobre los valores y el formato de los campos.
- Vista previa de la programación: vea los próximos momentos de ejecución a partir de la fecha actual.
- Calendario visual: ejecuciones programadas representadas en un calendario mensual.
Ninguna expresión cron debe implementarse sin obtener una vista previa de los próximos momentos de ejecución. Una comprobación de treinta segundos previene fallos de programación silenciosos.