27 votes

La tâche Cron ne s'exécute pas ?

J'ai un fichier crontab qui ressemble à ceci :

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

Cependant, lorsque je consulte le syslog à la recherche de preuves de l'exécution du travail, rien n'indique qu'il ait été exécuté. Comment puis-je vérifier s'il est en cours d'exécution ?

crontab -l produit les éléments suivants :

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

25voto

Dmitry Nikitenko Points 146

Ajoutez un fichier >>/tmp/testlog.log à la fin de votre fichier cr vers un fichier que vous pouvez examiner ou vérifier s'il 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

Veillez également à ce que les points suivants soient respectés :

  • Ajouter des cronjobs de manière appropriée. si vous avez utilisé crontab -e dans votre propre compte, les scripts sont exécutés avec votre utilisateur (et donc l'entrée crontab l'entrée de la crontab a un champ en moins -- l'utilisateur pour l'exécuter, car il est connu). connu). Si vous copiez simplement le texte ci-dessus dans /etc/cron.d, il échouera car vous n'avez pas spécifié de nom d'utilisateur. échouerait car vous n'avez pas spécifié d'utilisateur (ou plutôt parce qu'il ne trouve pas utilisateur nommé "bash").
  • Assurez-vous que le fichier script est exécutable, sinon il ne le sera pas. l'exécuter.
  • Recharger les jobs cron sudo service reload ou redémarrer le service cron sudo /etc/init.d/cron restart

Comment rendre un fichier exécutable ?

Il existe 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

3voto

user25 Points 31

Assurez-vous que le fichier script est exécutable {chmod 755} sinon il ne sera pas exécuté.

0voto

0x4a6f4672 Points 293

Le Shell Shell update.sh contient probablement des erreurs, par exemple des commandes qui ne peuvent pas être exécutées parce que la commande ne peut pas être trouvée. 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 de courrier électronique MAILTO, les courriers électroniques résultant de l'exécution des Cronjobs étant 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 les erreurs. Voir aussi cette question connexe pourquoi les cronjobs peuvent ne pas fonctionner .

0voto

Kamaro Points 101

J'ai rencontré le même problème et la cause pour moi était que la crontab ne s'exécutait pas parce qu'elle n'avait pas la permission de le faire. J'ai modifié le fichier et l'ai placé dans /tmpt/output.log

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

Faites-moi savoir si cela vous convient.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X