Pregunta: ¿Por qué mi trabajo cron no se ejecuta a la hora especificada?
Respuesta: Puede haber muchas razones por las que un trabajo cron no se puede ejecutar. Revisemos 5 razones importantes de por qué un trabajo cron no se ejecuta en el momento especificado y cómo resolver esos problemas.
1. Interpretación errónea del campo de tiempo y especificación de valores incorrectos.
Interpretación errónea del campo de tiempo y valores dados en el campo de tiempo que no mencionan el tiempo esperado/previsto.
Por ejemplo, para ejecutar un comando a las 8 p. m., debe especificar la hora en formato de 24 horas. es decir, las 8 p. m. son las 20 y no las 8 como se muestra a continuación.
0 8 * * * /home/ubuntu/full-backup [Note: The is wrong for 8 p.m]
0 20 * * * /home/ubuntu/full-backup [Note: This is correct for 8 p.m]
Lea nuestro tutorial Linux Crontab:15 impresionantes ejemplos de trabajo de Cron para obtener una comprensión profunda de crontab. Binny, uno de nuestros lectores habituales, ha creado una interfaz web que generará entradas cron cuando seleccione los valores apropiados para varios campos crontab en la interfaz de usuario.
2. Ruta no válida a la secuencia de comandos o comandos de Shell en crontab
Asegúrese de que la ruta completa al script de shell esté especificada en el crontab.
0 8 * * * tape-backup [Note: Invalid. No full path specified] 0 8 * * * /home/debian-os/bin/tape-backup [Note: Valid. This is correct with full path]
3. Sin permiso de ejecución para el script de Shell en Cron
Es posible que haya dado el comando correcto con la ruta correcta, pero es posible que el comando no tenga permiso de ejecución. Si está utilizando cualquier comando estándar de Unix, tendrá el permiso de ejecución establecido de forma predeterminada.
Pero, si está utilizando algunos comandos definidos por el usuario (scripts de shell), asegúrese de otorgarles permiso de ejecución como se muestra a continuación.
*/15 * * * * /home/fedora-os/check-disk-space [Note: Executes check-disk-space every 15 minutes] # cd /home/fedora-os # chmod u+x check-disk-space
4. %age en Comando de Trabajo Cron o Script de Shell
Si un comando tiene un %, su comando no se ejecutará. Consulte nuestras preguntas frecuentes anteriores sobre problemas de porcentaje de crontab para comprender cómo solucionar este problema.
5. No permitido ejecutar trabajo cron por administrador del sistema
Un administrador del sistema puede decidir qué usuario puede ejecutar trabajos cron y qué usuarios no. Entonces, para impedir que un usuario ejecute un trabajo cron, el administrador del sistema podría haber colocado su nombre de usuario en el archivo /etc/cron.deny.
Si tiene privilegios de root, verifique el archivo /etc/cron.deny para asegurarse de que su nombre no aparezca allí. Si está en la lista, edite el archivo y elimine su nombre. Si no tiene privilegios de root, comuníquese con su administrador de sistemas.