¿Cron Job no se está ejecutando?

24

Tengo un archivo crontab que se ve así:

* * * * * /home/abliskovs/update/update.sh

Sin embargo, cuando reviso el syslog para ver si hay pruebas de que el trabajo se ha ejecutado, no hay nada que pueda indicar que alguna vez se ejecutó. ¿Cómo puedo verificar si se está ejecutando?

crontab -l produce lo siguiente:

* * * * * /home/abliskovs/update/update.sh

Alex Bliskovsky
fuente
OK, ya hice eso.
Alex Bliskovsky
Tal vez una pregunta tonta, pero me ocurrió antes, así que preguntaré de todos modos. ¡Asegúrese de que el demonio cron se esté ejecutando realmente! : P La segunda aproximación son los permisos, asegúrese de que sea ejecutable por el usuario que ejecuta el cronjob.
Mattias Ahnberg

Respuestas:

21

Agregue un >> / tmp / testlog.log al final de su entrada crontab (para redirigir la salida a un archivo que puede investigar o verificar si se está ejecutando, adicionalmente un 2> & 1 incluiría la salida de la consola de error)

Ejemplo

0 * * * * /home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

También asegúrese de lo siguiente:

  • Agregue cronjobs de la manera correcta. si ha utilizado crontab -e dentro de su propia cuenta, los scripts se ejecutan con su usuario (y, por lo tanto, la entrada crontab tiene un campo menos: el usuario debe ejecutarlo, como se conoce). Si simplemente copió su anterior recortado a /etc/cron.d, fallaría ya que no especificó un usuario (o mejor dicho, ya que no encuentra ningún usuario llamado "bash").
  • Asegúrese de que el archivo de script sea ejecutable, de lo contrario no lo ejecutará.
  • Vuelva a cargar los trabajos cron sudo service reload , o reinicie el servicio cronsudo /etc/init.d/cron restart

¿Cómo hacer que un archivo sea ejecutable?

Varias formas de hacer que su archivo sea ejecutable

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh
Md Mahbubur Rahman
fuente
3

Asegúrese de que el archivo de script sea ejecutable {chmod 755}, de lo contrario no lo ejecutará

usuario25
fuente
2
Para hacer que un archivo sea ejecutable, también puede ejecutarchmod +x filename
Stefano Palazzo
0

El script de shell update.shprobablemente contiene errores, por ejemplo, algunos comandos que no se pueden ejecutar porque no se puede encontrar el comando. En este caso, puede ser útil agregar la ruta a su comando en la variable PATH, o agregarla directamente frente a su comando. También ayuda a especificar la dirección de correo electrónico MAILTO, los correos electrónicos que resultan de la ejecución de Cronjobs se envían a esta dirección

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

También puede verificar el buzón local con maily el archivo syslog en /var/log/syslogbusca de errores. Vea también esta pregunta relacionada por qué cronjobs puede no funcionar .

0x4a6f4672
fuente
0

Tuve el mismo problema y la causa para mí fue que crontab no se estaba ejecutando porque no tenía permiso para hacerlo. He cambiado el archivo y lo puse en /tmpt/output.log

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

Hazme saber si esto funciona para ti.

Kamaro Lambert
fuente