web-dev-qa-db-fra.com

Comment savoir pourquoi cron n'exécute pas mes tâches?

J'utilise Ubuntu 14.04 et le démon cron fonctionne:

# ps ax | grep cron
822 ?        Ss     0:00 cron

mais il n'exécute aucun travail. J'obtenais précédemment des entrées dans /var/log/syslog tel que cela:

2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))

mais maintenant il n'y a plus d'entrées liées à cron. J'obtenais également des entrées comme celle-ci dans /var/log/auth.log:

2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root

mais encore une fois, il n'y a maintenant aucune entrée liée à cron.

Je ne suis pas au courant que quoi que ce soit ait changé. J'ai essayé de redémarrer cron:

# service cron restart
cron stop/waiting
cron start/running, process 24907

J'ai essayé d'utiliser crontab -e pour ajouter un travail cron * * * * * date >> /tmp/somefile qui fonctionnait, mais il a installé un nouveau crontab dans /var/spool/cron/crontabs/root, alors que je veux que cron utilise le fichier dans /etc/crontab.

Y a-t-il une option de débogage que je peux utiliser, ou un journal quelque part qui pourrait donner un message d'erreur que je peux étudier?

15
jl6

Pour vous aider à déboguer ce qui ne va pas avec vos travaux cron, vous devriez vérifier votre courrier. Ceci est généralement stocké dans un fichier comme /var/mail/<user_name> Ou /var/spool/mail/<user_name>.

Ces deux fichiers sont en fait des liens physiques sur ma boîte Debian, mais je ne sais pas si c'est standard.

Explication

Depuis la page cron(8):

Lors de l'exécution des commandes, toute sortie est envoyée au propriétaire de la crontab (ou à l'utilisateur nommé dans la variable d'environnement MAILTO dans la crontab, s'il en existe un).

4
Joseph R.

J'ai également rencontré un type de problème similaire, mais après avoir spécifié la racine en tant qu'utilisateur sur le /etc/crontab, le travail cron a commencé à se déclencher.

Cela peut être dû à la syntaxe suivie sur le crontab -e qui est différent du /etc/crontab.

0
MohanBabu

Vous avez montré qu'il n'y a pas de crontab pour root, y a-t-il des utilisateurs qui ont une entrée crontab? Si vous utilisez uniquement root, vous pouvez également vérifier les répertoires suivants: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly

sur ma machine (centos 6.4), j'ai mlocate.cron à l'intérieur du répertoire /etc/cron.daily/ et cron exécute ce script quotidiennement.

donc je pense que vous avez juste besoin d'ajouter des tâches cron.

0
Hudspeth

J'ai résolu ce problème en modifiant les autorisations sur /etc/crontab aux éléments suivants:

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

Auparavant, c'était -rw-rw-r--. C'était le seul changement. Cela ne fonctionnait pas, maintenant c'est le cas. Je ne sais toujours pas pourquoi.

0
jl6