1028 votes

Où se trouve le journal de cron / crontab ?

Je veux vérifier que ma tâche cron s'exécute et à quelle heure. Je pense qu'il existe un journal pour mon sudo crontab -e des emplois, mais où ?

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

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 dans date +"%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.

23voto

ZLA Points 11
journalctl -t CROND

Desde el journalctl manuel :

   -t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, 
       or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

       This parameter can be specified multiple times.

1 votes

Sur un ubuntu 20, vous pouvez utiliser le tag CRON, le tag CROND ne donne aucun résultat.

0 votes

Sur RHEL 7, la plupart des tâches sont exécutées par anacron y /var/log/cron contient beaucoup plus d'informations utiles que journalctl -t CROND

15voto

Tristan Maat Points 159

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

Tout d'abord, faites en sorte que votre tâche cron s'exécute toutes les minutes, puis exécutez cron en tant que non-daemon (temporairement, il suffit de tuer tout cron qui aurait déjà été lancé) avec une journalisation de test :

crond -nx test

Et voyez le journal de l'exécution de votre programme s'écouler dans votre terminal.

11 votes

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

0 votes

Même erreur sur Ubuntu 18.04 aujourd'hui

0 votes

Crond et cron sont identiques, crond est utilisé dans les plateformes RedHat, CentOS et Suse. Et cron est utilisé dans Ubuntu. Donc en fonction de votre système, utilisez crond ou cron.

12voto

SDsolar Points 2861

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

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

Ce Q&R décrit le processus :

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

Vous trouverez également dans cette réponse les instructions pour créer une wcron qui l'affiche est en temps quasi-réel. De plus, elle renvoie à une autre réponse,

Comment modifier le niveau de journalisation de cron ?

qui montre comment changer le niveau du journal pour qu'il n'inclue pas seulement le début des travaux - le niveau 15 montrera également les erreurs et l'heure de fin.

12voto

zero Points 221

Comme mentionné précédemment, les tâches cron sont enregistrées dans le fichier /var/log/syslog

Vous pouvez envoyer le syslog vers grep et filtrer les logs CRON, comme ceci

less /var/log/syslog | grep CRON 

Vous pouvez rechercher dans les journaux de votre crontab, comme ceci

less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>

Vous pouvez effectuer une recherche dans les journaux d'historique de votre crontab stockés dans des fichiers gz, comme ceci

less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>

Il est toujours bon d'avoir un mécanisme d'enregistrement, vous pouvez rapidement configurer ELK pour vos serveurs, vous pouvez également expérimenter avec logz .

11voto

Himanshu Points 223

Vous pourriez rediriger la sortie de cron dans un fichier temporaire. Par exemple :

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

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

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