Où est mon fichier journal de crontab?

9

pas / var / log / cron, pas /var/log/cron.log sur mon debian7, où est mon fichier journal de crontab?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
it_is_a_literature
la source

Réponses:

13

Je pense que sur debian cronécrit les journaux /var/log/syslog.
Si votre système dépend de rsyslogou syslogdvous pouvez vérifier et décommenter dans /etc/rsyslog.confou /etc/syslog.confpour la ligne:

# cron.* /var/log/cron.log

puis redémarrez les services.

Si votre système dépend systemdpar exemple de vous pouvez vérifier avec la commande suivante:

journalctl _COMM=cron

ou

journalctl _COMM=cron --since="date" --until="date"

Pour le format de date, vous pouvez vérifier journalctl .

taliezin
la source
pas /etc/rsyslog.con et /etc/syslog.conf dans mon debian7.
it_is_a_literature
pour le premier fichier c'est une faute de frappe devrait être /etc/rsyslog.conf si vous n'êtes pas avec systemd.
taliezin
qu'en est-il sudo journalctl --since yesterday -u cron.service? Qu'est-ce que c'est _COMM?
Dashesy
4

Par défaut, la sortie des crontabtravaux est envoyée à l'adresse e-mail locale de l'utilisateur propriétaire. par exemple: la crontabsortie pour aUser sur l'hôte www.aDomain.com serait envoyée à [email protected] . Le système utilise son expéditeur par défaut pour accomplir la tâche.

Vous pouvez détourner cette sortie vers une autre adresse e-mail en ajoutant une MAILTOinstruction dans le fichier crontab. Par exemple:

# Mail any output to [email protected], no matter whose crontab this is
[email protected]
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh 

Soyez prudent lorsque vous utilisez une adresse e-mail externe pour recevoir les journaux crontab. Les messages fréquemment envoyés peuvent être pris dans un filtre anti-spam. Vous devrez ensuite marquer les messages comme non spam pour des services comme Yahoo, HotMail ou Gmail.

Une autre solution serait de rediriger la sortie de vos commandes crontab vers un fichier de votre choix. Dans l'exemple ci-dessous, la sortie stdoutet stderrest envoyée à /tmp/aJob.log. Cette méthode élimine la possibilité d'envoi d'un message électronique.

# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1

Une autre alternative consiste à envoyer des stderrjournaux par e-mail et des stdoutjournaux à un fichier. Dans ce cas, vous recevez une alerte par e-mail lorsque vos crontabcommandes génèrent des messages d'erreur inattendus. La différence avec l'exemple précédent est qu'elle 2>&1est supprimée pour permettre à la stderrsortie d'aller sur la console et donc de l'email.

# Mail any output to [email protected], no matter whose crontab this is
[email protected]    
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log

En savoir plus tables crontab et commande crontab

ikrabbe
la source
1

Comme il ne s'agit pas d'une balise debian et apparaît également dans les recherches sur fedora, voici comment vérifier les fedora récents (basés sur systemd):

sudo systemctl status crond

Sortie typique

 crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-29 16:09:21 CEST; 47min ago
 Main PID: 1167 (crond)
    Tasks: 1
   Memory: 2.8M
      CPU: 948ms
   CGroup: /system.slice/crond.service
           └─1167 /usr/sbin/crond -n

Sep 29 16:09:21 ncelrnd0216 systemd[1]: Started Command Scheduler.
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) STARTUP (1.5.4)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (Syslog will be used instead of sendmail.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (running with inotify support)

et allles journaux avec

journalctl --unit crond -n all
eddygeek
la source