Protokolliert der mit OS X gelieferte Cron seine Aktionen irgendwo?
Ich suche nicht die Ausgabe eines bestimmten Cron-Jobs, sondern protokolliere, was Cron tut. Auf einigen Linux-Rechnern, die ich überprüft habe, gibt /var/log/cron
es Inhalte wie:
Apr 26 11:00:01 localhost crond[27755]: (root) CMD (/root/bin/mysql-backup)
Apr 26 11:01:01 localhost crond[27892]: (root) CMD (run-parts /etc/cron.hourly)
Apr 26 11:07:01 localhost crond[28138]: (root) CMD (/usr/local/bin/python /home/
user1/scripts/pythonscript.py)
Apr 26 11:18:18 localhost crontab[28921]: (user2) LIST (user2)
Apr 26 11:18:22 localhost crontab[28929]: (user2) BEGIN EDIT (user2)
Apr 26 11:18:59 localhost crontab[28929]: (user2) REPLACE (user2)
Dies zeigt, wann Jobs ausgeführt wurden, wann Benutzer Crontabs angesehen oder bearbeitet haben usw. Dieses Zeug ist nirgends auf meinem Snow Leopard-Computer zu finden.
macos
osx-snow-leopard
cron
Doug Harris
quelle
quelle
Ich dachte mir, wie ich meine Cron-Job-Aktivitäten protokollieren kann, ohne jeden einzelnen auf gestartete Jobs umzustellen.
Die Cron-Manpage erwähnt
-x
Optionen, die das "Schreiben von Debugging-Informationen in die Standardausgabe" ermöglichen. Ein Nebeneffekt davon ist, dass diese auch grundlegende Informationen zu Standardfehlern schreiben. An Standardfehler gesendete Daten werden in geschrieben/var/log/system.log
.Dies führt dazu, dass Daten wie diese geschrieben werden in
/var/log/system.log
:Da cron selbst von launchd gestartet wird, musste ich das bearbeiten,
/System/Library/LaunchDaemons/com.vix.cron.plist
damit es jetzt so aussieht:Ich habe
-x misc
hier verwendet, aber es schien keine Rolle zu spielen, welche Optionen ich verwendet habe. Durch das Hinzufügen wurde die-x
Protokollierung der Jobaktivität gestartet. Ich habe auch den StandardErrorPath hinzugefügt, in den/var/log/cron.log
anstelle des Standard geschrieben werden soll/var/log/system.log
.Und dann entladen und neu laden:
quelle
OSX verwendet jetzt eher launchd als cron ( Apple dev doc ), sodass möglicherweise nichts in cron zu protokollieren ist.
Verwenden Sie launchctl, um die Protokollierungsstufe von launchd zu steuern. Som-Protokollinformationen werden in system.log angezeigt, mehr jedoch in der Konsolen-App -> Alle Nachrichten
quelle
0 0 7 11 0 happybirthday
.Zumindest unter Yosemite werden Cron-Protokolle als
mail
Nachrichten ausgegeben. Verwenden Sie also diemail
, um sie zu lesen.quelle
cron
Sendet eine (ansonsten nicht umgeleitete) Ausgabe per E-Mail an den Eigner des Auftrags. Wenn alle Ausgaben umgeleitet werden, wird keine E-Mail gesendet. (Selbst wenn eine Nachricht gesendet wird, bin ich mir nicht sicher, ob der ausgeführte Befehl angezeigt wird.) Die Frage lautet, wie der Administrator alle ausgeführten Befehle sehen kanncron
. Um Ihre Antwort zu verwenden, müsste sich eine Person die Mail-Datei aller Personen ansehen.