Question Où est le journal cron / crontab?


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 mon sudo crontab -e emplois, mais où?

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


612
2017-08-11 12:06


origine




Réponses:


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à.


720
2017-08-12 10:58



S'il n'y a pas de MTA installé, cron lève simplement la sortie du travail. - Barry Kelly
Le journal de cron peut être dans un autre fichier dans le /var/log/ annuaire. Recherchez cron.log ou équivalent. - Navigatron
cela ne me donne pas la sortie du travail. cela donne juste un message générique que le cron a été traité. - chovy
sur AWS c'était / var / log / cron - tsukimi
@shadi vous pourriez aussi grep -i CRON rechercher insensible à la casse - nafg


Vous pouvez créer un fichier cron.log pour contenir 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 lorsque 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, à moins que ces scripts ne 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 redirigera toutes les sorties et erreurs standard pouvant être produites par le script exécuté dans le fichier journal spécifié.


195
2018-04-13 01:36



À mon avis, cette réponse est meilleure à l’avenir. Donc, votre fichier syslog est plus clair. - shgnInc
Pour exclure également le journal cron de syslog, vous pouvez modifier la ligne *.*;auth,authpriv.none -/var/log/syslog à *.*;auth,authpriv.none,cron.none -/var/log/syslog. - Koen.
Sur notre CentOS 6, cron. * Défini dans /etc/rsyslog.conf, alors que je suis vide dans le dossier rsyslog.d. - Scott Chu
quel est 2>&1 représenter ? - John Joe
@JohnJoe 2> & 1 est utilisé pour transférer stderr vers stdout, de cette façon vous obtenez également stderr pour enregistrer le fichier. - Sampo Sarrala


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

tail -f /var/log/syslog | grep CRON

67
2018-05-14 07:34



Eh bien, vous voulez probablement utiliser -F, qui suivra le fichier à travers les modifications de nom, de sorte que lorsqu'il est tronqué / déplacé, par exemple /var/log/syslog.1.gz, vous suivez toujours le courant /var/log/syslog fichier. Par l'homme, c'est comme courir tail xxxx -f --retry - Momer


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

24
2018-04-01 15:26



true, mais si cette ligne ne parvient pas à s'exécuter à cause d'une erreur de syntaxe, rien ne sera écrit dans le journal de sortie spécifié. - Raptor
Vous pouvez résoudre ce problème en ajoutant 2> & 1 après avoir spécifié le fichier journal. Il est également recommandé de tester vos cronjobs avant de les ajouter à la crontab, puis d’être présents lors de la première exécution planifiée pour vous assurer que la crontab est correctement formatée. - Andrew Meyer


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

Commencez par exécuter votre tâche 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 passant par votre terminal.


7
2018-06-17 17:42



Ne fonctionne pas le 14.04 - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


C'est dedans /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?

Aussi dans cette réponse est les instructions pour créer un wcron commande qui l'affiche est en temps quasi réel. De plus, il est lié à une autre réponse,

Comment changer le niveau de journalisation de cron?

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


5
2017-10-22 06:40





Vous pouvez rediriger la sortie de cron vers un fichier tmp

Tel que: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1

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


1
2018-05-07 11:27