Ich möchte überprüfen, ob und zu welcher Zeit mein Cron-Job ausgeführt wird. Ich glaube, es gibt ein Protokoll für meine sudo crontab -e
Jobs, aber wo?
Ich suchte bei Google und fand Empfehlungen, um nachzuschauen /var/log
(in denen ich nichts mit 'cron' im Namen sehe) und die Datei zu bearbeiten, /etc/syslog.conf
die ich auch nicht habe.
/var/log/
Verzeichnis. Suchen Sie nach cron.log oder einer entsprechenden Datei.grep -i CRON
nach Groß- und Kleinschreibung suchenSie können eine cron.log-Datei erstellen, die nur die CRON-Einträge enthält, die in syslog angezeigt werden. Beachten Sie, dass CRON-Jobs weiterhin im Syslog angezeigt werden, wenn Sie die folgenden Anweisungen befolgen.
Öffne die Datei
Suchen Sie die Zeile, die beginnt mit:
Kommentiere diese Zeile aus, speichere die Datei und starte rsyslog neu:
Sie sollten jetzt eine Cron-Protokolldatei hier sehen:
Die Cron-Aktivität wird nun (zusätzlich zu Syslog) in dieser Datei protokolliert.
Beachten Sie, dass in cron.log Einträge für die Ausführung von Skripten durch cron in /etc/cron.hourly, cron.daily usw. angezeigt werden - z.
In /etc/cron.daily oder /etc/cron.hourly werden jedoch keine weiteren Informationen darüber angezeigt, welche Skripts tatsächlich ausgeführt wurden, es sei denn, diese Skripts geben sie direkt in die Datei cron.log (oder möglicherweise in eine andere Protokolldatei) aus.
Wenn Sie überprüfen möchten, ob eine crontab ausgeführt wird und nicht in cron.log oder syslog danach suchen müssen, erstellen Sie eine crontab, die die Ausgabe in eine Protokolldatei Ihrer Wahl umleitet.
Dadurch werden alle Standardausgaben und -fehler umgeleitet, die möglicherweise von dem Skript erzeugt werden, das in der angegebenen Protokolldatei ausgeführt wird.
quelle
*.*;auth,authpriv.none -/var/log/syslog
in ändern*.*;auth,authpriv.none,cron.none -/var/log/syslog
.2>&1
Stand?Manchmal kann es nützlich sein, es kontinuierlich zu überwachen. In diesem Fall:
quelle
-F
, dass die Datei über Namensänderungen hinweg verfolgt wird, sodass Sie, wenn sie abgeschnitten / verschoben wird, z. B./var/log/syslog.1.gz
immer noch der aktuellen/var/log/syslog
Datei folgen .tail xxxx -f --retry
Sie können die Ausgabe der einzelnen Cronjobs auch zur besseren Lesbarkeit in ihre eigenen Protokolle lenken. Sie müssen lediglich die Ausgabe des Datums an eine beliebige Stelle anhängen.
quelle
Wenn Sie
systemd
auf Ihrem System installiert haben , können Sie mit demjournalctl
Befehl das Cron-Job-Protokoll anzeigen .Zum Beispiel auf meinem Ubuntu 17.10:
quelle
Dies ist eine sehr alte Frage, aber keine dieser Antworten scheint zufriedenstellend zu sein.
Lassen Sie Ihren Cron-Job zuerst jede Minute laufen, und führen Sie dann Cron als Nicht-Daemon aus (töten Sie vorübergehend nur einen eventuell bereits gestarteten Cron), indem Sie die Testprotokollierung durchführen:
crond -nx test
Und sehen Sie das Protokoll Ihrer Programmausführung, das durch Ihr Terminal fließt.
quelle
No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
Es ist
/var/log/syslog
standardmäßig aktiviert.Es kann jedoch so eingerichtet werden, dass ein separates cron.log erstellt wird, was nützlicher ist.
Diese Frage & Antwort beschreibt den Prozess:
16.04: Wie erstelle ich cron.log und überwache es in Echtzeit?
In dieser Antwort finden Sie auch die Anweisungen zum Erstellen eines
wcron
Befehls, der nahezu in Echtzeit angezeigt wird. Außerdem verweist es auf eine andere Antwort,Wie ändere ich den Cron Log Level?
Hier sehen Sie, wie Sie die Protokollebene so ändern können, dass sie mehr als nur den Start von Jobs enthält. In Ebene 15 werden auch Fehler und die Endzeit angezeigt.
quelle
Fedoar 29 und RHEL 7
Aus dem
journalctl
Handbuch:quelle
Sie können die Ausgabe von cron in eine tmp-Datei umleiten
Zum Beispiel: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1
Fehler und normale Ausgabe, beide werden in dieselbe Datei umgeleitet
quelle
Wie bereits erwähnt, werden Cron-Jobs protokolliert
/var/log/syslog
Sie können das Syslog so weiterleiten, dass es die CRON-Protokolle durchsucht und herausfiltert
Sie können Ihre Crontab-Protokolle wie folgt durchsuchen
Sie können Ihre in gz-Dateien gespeicherten crontab-Verlaufsprotokolle wie folgt durchsuchen
Es wird immer als gut angesehen, über einen Protokollierungsmechanismus zu verfügen. Sie können ELK schnell für Ihre Server einrichten und mit logz experimentieren .
quelle