web-dev-qa-db-fra.com

Cron Job Not Running?

J'ai un fichier crontab qui ressemble à ceci:

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

Cependant, lorsque je vérifie dans le syslog la preuve que le travail a été exécuté, rien ne peut indiquer qu'il a déjà été exécuté. Comment puis-je vérifier s'il fonctionne?

crontab -l renvoie les éléments suivants:

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

24
Alex Bliskovsky

Ajoutez un >>/tmp/testlog.log à la fin de votre entrée de crontab (pour rediriger la sortie dans un fichier, vous pouvez rechercher ou vérifier si elle est en cours d'exécution. De plus, un 2> & 1 inclurait la sortie de la console d'erreur)

Exemple

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

Assurez-vous également les points suivants:

  • Ajoute les tâches cron de manière correcte. Si vous avez utilisé crontab -e dans votre propre compte, les scripts sont exécutés avec votre utilisateur (et l'entrée crontab a donc un champ de moins - l'utilisateur qui l'exécute , comme on le sait). Si vous copiez simplement votre copie ci-dessus dans /etc/cron.d, cela échouera si vous ne spécifiez pas d'utilisateur (ou plutôt s'il ne trouve aucun utilisateur nommé "bash").
  • Assurez-vous que le fichier de script est exécutable, sinon il ne l'exécutera pas.
  • Rechargez les tâches cron rechargement du service Sudo, ou redémarrez le service cron Sudo /etc/init.d/cron restart

Comment faire un fichier exécutable?

Plusieurs façons de rendre votre fichier exécutable

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

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

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

Assurez-vous que le fichier de script est exécutable {chmod 755}, sinon il ne l'exécutera pas.

3
user25

Le script shell update.sh contient probablement des erreurs, par exemple des commandes qui ne peuvent pas être exécutées car la commande est introuvable. Dans ce cas, il peut être utile d’ajouter le chemin d’accès à votre commande dans la variable PATH ou de l’ajouter directement devant votre commande. Il est également utile de spécifier l'adresse e-mail MAILTO, les e-mails résultant de l'exécution de Cronjobs sont envoyés à cette adresse.

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

Vous pouvez également vérifier la boîte aux lettres locale avec mail et le fichier syslog dans /var/log/syslog pour rechercher les erreurs. Voir aussi cette question connexe pourquoi les tâches cron ne peuvent pas fonctionner .

0
0x4a6f4672

J'ai rencontré le même problème et la raison pour laquelle je pensais était que crontab ne fonctionnait pas car il n'avait pas la permission. J'ai changé de fichier et je l'ai mis dans /tmpt/output.log

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

Faites-moi savoir si cela fonctionne pour vous.

0
Kamaro Lambert