Vous pouvez créer un fichier cron.log qui contient uniquement les entrées CRON qui apparaissent dans syslog. Notez que les tâches CRON apparaîtront toujours dans syslog si vous suivez les instructions suivantes.
Ouvrir le fichier
/etc/rsyslog.d/50-default.conf
Trouvez la ligne qui commence par :
#cron.*
décommentez cette ligne, sauvegardez le fichier, et redémarrez rsyslog :
sudo service rsyslog restart
Vous devriez maintenant voir un fichier journal cron ici :
/var/log/cron.log
L'activité de Cron sera désormais enregistrée dans ce fichier (en plus de syslog).
Notez que dans cron.log vous verrez des entrées pour quand cron a exécuté scripts dans /etc/cron.hourly, cron.daily, etc. - Par exemple, quelque chose comme :
Apr 12 14:17:01 cd CRON[14368]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Cependant, vous ne verrez pas plus d'informations sur les scripts qui ont été effectivement exécutés à l'intérieur de /etc/cron.daily ou /etc/cron.hourly, à moins que ces scripts ne dirigent la sortie vers le cron.log (ou peut-être vers un autre fichier journal).
Si vous voulez vérifier si une crontab est en cours d'exécution et ne pas avoir à la chercher dans cron.log ou syslog, créez une crontab qui redirige la sortie vers un fichier journal de votre choix - quelque chose comme :
01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
Ceci redirigera toute la sortie standard et les erreurs qui peuvent être produites par le script qui est exécuté vers le fichier journal spécifié.
0 votes
Attention, dans le
crontab
le contexte%
crée une nouvelle ligne, donc une mauvaise utilisation de ce caractère (c'est-à-dire le fait de ne pas l'échapper, par exemple dansdate +"%Y-%m-%d"
) peut empêcher une journalisation correcte (date +%Y-%m-%d >> /tmp/cron.log
ne fonctionnera pas). Aussi, cette réponse peut aider.