Où est le journal cron / crontab?

608

Je veux vérifier que mon travail cron est en cours d'exécution et à quelle heure. Je crois qu'il y a un journal pour mes emplois sudo crontab -e , mais où?

J'ai cherché google et trouvé des recommandations pour regarder dans /var/log (dans lequel je ne vois rien avec «cron» dans le nom) et pour éditer le fichier /etc/syslog.conf que je n'ai pas non plus.

    
posée Scott Szretter 11.08.2011 - 14:06
la source

7 réponses

715

Sur une installation par défaut, les tâches cron sont consignées dans

/var/log/syslog

Vous pouvez voir uniquement les tâches cron dans ce fichier journal en exécutant

 grep CRON /var/log/syslog

Si vous n’avez rien reconfiguré, les entrées seront là.

    
réponse donnée Richard Holloway 12.08.2011 - 12:58
la source
193

Vous pouvez créer un fichier cron.log contenant uniquement les entrées CRON qui apparaissent dans syslog. Notez que les travaux CRON seront toujours affichés dans syslog si vous suivez les instructions suivantes.

Ouvrez le fichier

/etc/rsyslog.d/50-default.conf

Trouvez la ligne qui commence par:

#cron.*

décommentez cette ligne, enregistrez 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é 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é des scripts dans /etc/cron.hourly, cron.daily, etc. - par ex. 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 réellement exécutés dans /etc/cron.daily ou /etc/cron.hourly, sauf si ces scripts dirigent la sortie vers le fichier 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 rechercher dans cron.log ou syslog, créez une crontab qui redirige la sortie vers un fichier journal de votre choix - par exemple:

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

Cela va rediriger toutes les sorties standard et les erreurs pouvant être produites par le script exécuté dans le fichier journal spécifié.

    
réponse donnée user12345 13.04.2012 - 03:36
la source
66

Parfois, il peut être utile de le surveiller en permanence, dans ce cas:

tail -f /var/log/syslog | grep CRON
    
réponse donnée KennyCason 14.05.2013 - 09:34
la source
23

Vous pouvez également diriger la sortie des tâches individuelles vers leurs propres journaux pour une meilleure lisibilité. Il vous suffit d’ajouter la sortie de la date quelque part.

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1
    
réponse donnée Andrew Meyer 01.04.2015 - 17:26
la source
6

C'est une question très ancienne, mais aucune de ces réponses ne semble satisfaisante.

Commencez par exécuter votre travail cron toutes les minutes, puis lancez cron en tant que non-démon (temporairement, il vous suffit de tuer tout crond qui a déjà démarré) avec la journalisation de test:

crond -nx test

Et voir le journal de l’exécution de votre programme dans votre terminal.

    
réponse donnée Tristan Maat 17.06.2016 - 19:42
la source
5

Il est en /var/log/syslog par défaut.

Mais il peut être configuré pour créer un fichier cron.log distinct, ce qui est plus utile.

Ce Q & A décrit le processus:

16.04: Comment faire en sorte que cron crée cron.log et le surveille en temps réel?

Dans cette réponse, vous trouverez également les instructions pour créer une commande wcron qui affiche qu'elle est en temps quasi réel. De plus, il est lié à une autre réponse,

Comment modifier le niveau du journal cron?

qui montre comment modifier le niveau de journalisation pour inclure plus que le début des travaux - le niveau 15 affichera également les erreurs et l'heure de fin.

    
réponse donnée SDsolar 22.10.2017 - 08:40
la source
1

Vous pouvez rediriger la sortie de cron vers un fichier tmp

Tels que: 00 11 07 * * / bin / bash /home/ubuntu/command.sh & gt; / tmp / output 2 & gt; & amp; 1

Erreur et sortie normale, les deux seront redirigés vers le même fichier

    
réponse donnée Himanshu 07.05.2018 - 13:27
la source

Lire d'autres questions sur les étiquettes