¿Qué significan los 5 asteriscos en Crontab? (Conceptos básicos de programación del sistema)
Al administrar servidores, siempre hay tareas que deben ejecutarse periódicamente.
Limpiar archivos de registro, hacer copias de seguridad de bases de datos y enviar correos electrónicos son ejemplos clásicos. En entornos Linux, la herramienta estándar para programar estas tareas es Cron.
Sin embargo, para un principiante, una expresión Cron puede parecer un código críptico.
* * * * *
Decodifiquemos qué significan estos 5 asteriscos y discutamos algunos errores comunes.
1. Estructura de la Sintaxis de Crontab
Una expresión Cron estándar de Linux consta de 5 campos.
* * * * *
Min Hora Día Mes DíaSemana
(0-59) (0-23) (1-31) (1-12) (0-7)
- Minuto: 0 a 59
- Hora: 0 a 23
- Día del Mes: 1 a 31
- Mes: 1 a 12
- Día de la Semana: 0 a 7 (Tanto 0 como 7 representan Domingo, 1=Lunes, ...)
2. La Magia de los Caracteres Especiales
Más allá de los números simples, puedes usar caracteres especiales para una programación flexible.
*(Asterisco): Cada valor (cada minuto, cada hora...),(Coma): Lista de valores (ej.,1,3,5-> Ejecutar en 1, 3 y 5)-(Guion): Rango (ej.,1-5-> Ejecutar del 1 al 5)/(Barra): Valores de paso (ej.,*/10-> Ejecutar cada 10 unidades)
Ejemplos
30 04 * * *: Ejecutar a las 04:30 AM todos los días.*/15 * * * *: Ejecutar cada 15 minutos (0, 15, 30, 45).0 9 * * 1-5: Ejecutar a las 09:00 AM los días laborables (Lun-Vie).
3. Error Común: "Día" vs. "Día de la Semana"
La parte más confusa de la configuración de Crontab es la interacción entre los campos "Día del Mes" y "Día de la Semana".
Si ambos campos se establecen en valores específicos (no *), el comando se ejecuta cuando se cumple CUALQUIERA de las condiciones (condición OR).
Por ejemplo:
0 0 1,15 * 5
Esto se ejecuta el "1 y 15 de cada mes" Y "todos los viernes". (¡NO significa "ejecutar solo los viernes que caen en el 1 o 15"!)
Conclusión
Cron es una herramienta simple pero poderosa.
Sin embargo, un trabajo Cron mal configurado puede agotar los recursos del servidor o hacer que se pierdan copias de seguridad críticas.
Para necesidades de programación complejas, verifica siempre tus expresiones utilizando generadores de Crontab en línea, o considera adoptar herramientas de programación profesionales como Jenkins o Airflow.
Explora herramientas relacionadas
Prueba estas herramientas gratuitas de Pockit