no / var / log / cron, no /var/log/cron.log auf meinem debian7, Wo ist meine Logdatei von crontab?
ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
no / var / log / cron, no /var/log/cron.log auf meinem debian7, Wo ist meine Logdatei von crontab?
ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
Antworten:
Ich denke an debian
cron
schreibt Logs in /var/log/syslog
.
Wenn Ihr System davon abhängt rsyslog
oder syslogd
Sie entweder in /etc/rsyslog.conf
oder /etc/syslog.conf
für Zeile prüfen und auskommentieren können :
# cron.* /var/log/cron.log
und starten Sie dann die Dienste neu.
Wenn Ihr System systemd
zum Beispiel davon abhängt , können Sie dies mit folgendem Befehl überprüfen:
journalctl _COMM=cron
oder
journalctl _COMM=cron --since="date" --until="date"
Für das Datumsformat können Sie journalctl überprüfen .
sudo journalctl --since yesterday -u cron.service
? Was ist _COMM
?
Standardmäßig wird die Ausgabe von crontab
Jobs an die lokale E-Mail-Adresse des besitzenden Benutzers gesendet. Beispiel: Die crontab
Ausgabe für aUser auf Host www.aDomain.com wird an aUser@www.aDomain.com gesendet . Das System verwendet seinen Standardmailer, um die Aufgabe auszuführen.
Sie können diese Ausgabe an eine alternative E-Mail-Adresse umleiten, indem Sie eine MAILTO
Anweisung in die crontab-Datei einfügen. Zum Beispiel:
# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# Run the following command ten minutes after midnight, every day
10 0 * * * $HOME/bin/aJob.sh
Seien Sie vorsichtig, wenn Sie eine externe E-Mail-Adresse verwenden, um Crontab-Protokolle zu erhalten. Häufig gesendete Nachrichten werden möglicherweise von einem Spamfilter erfasst. Sie müssten dann die Nachrichten für Dienste wie Yahoo, HotMail oder Gmail als Nicht-Spam markieren .
Eine alternative Lösung wäre, die Ausgabe Ihrer crontab-Befehle in eine Datei Ihrer Wahl umzuleiten. Im folgenden Beispiel wird die Ausgabe stdout
und an stderr
gesendet /tmp/aJob.log
. Diese Methode verhindert, dass eine E-Mail-Nachricht gesendet wird.
# Run the following command ten minutes after midnight, every day
10 0 * * * $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1
Eine andere Alternative besteht darin, stderr
Protokolle an E-Mails und stdout
Protokolle an eine Datei zu senden . In diesem Fall werden Sie per E-Mail benachrichtigt, wenn Ihre crontab
Befehle unerwartete Fehlermeldungen generieren. Der Unterschied zum vorherigen Beispiel besteht darin, dass 2>&1
entfernt wird, damit die stderr
Ausgabe an die Konsole und damit an E-Mails gesendet werden kann.
# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# Run the following command ten minutes after midnight, every day
10 0 * * * $HOME/bin/aJob.sh >> /tmp/aJob.log
Lesen Sie mehr Crontab-Tabellen und Crontab-Befehl
Da dies nicht mit debian markiert ist und auch in Fedora-Suchen angezeigt wird, können Sie hier nach aktuellen (systemd-basierten) Fedora suchen:
sudo systemctl status crond
Typische Ausgabe
● 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)
und all
die Protokolle mit
journalctl --unit crond -n all