Schon bei wenigen Cronjobs, die mehrfach pro Tag ausgeführt werden, wird die Logdatei auth.log
mit Einträgen wie zum Beispiel den folgenden überflutet:
1 | Apr 29 10:21:01 meinserver CRON[19888]: pam_unix(cron:session): session opened for user root by (uid=0) |
Dies macht die Logdatei auth.log
sehr unübersichtlich und es teilweise sogar unmöglich manuell nach bestimmten Vorkommnissen zu Suchen.
Mit Hilfe von rsyslog, welches bei Debian (ab Lenny) und Ubuntu standardmäßig zum Einsatz kommt, ist es ohne weiteres möglich die entsprechenden Logeinträge in eine andere Datei umzuleiten. Hierzu erstellen wir im Verzeichnis /etc/rsyslog.d/
eine neue Datei namens 30-cron.conf
mit folgendem Inhalt:
1 | # Cronjob-Spam umleiten |
Wichtig
Wichtig ist dabei das & stop
in der letzten Zeile, da sonst die Logeinträge in beiden Dateien ankommen.
Hinweis
Ältere Versionen des rsyslog verwenden hier noch & ~
anstelle von & stop
.
Alternativ könnte man auch die Logeinträge komplett verwerfen über folgenden Konfiguration:
1 | # Cronjob-Spam nicht loggen |
Um die Änderungen zu Übernehmen müssen wir rsyslog noch neu starten:
sudo systemctl restart rsyslog.service
bzw. sudo /etc/init.d/rsyslog restart
Jetzt sollten alle neuen Einträge der Conjobs aus der Logdatei auth.log
verschwunden sein und in der cronauth.log
auftauchen.
Sollte die Datei /var/log/cronauth.log
nicht automatisch angelegt werden oder leer bleiben, dann kann diese per Hand angelegt und die Dateirechte entsprechend angepasst werden:
1 | sudo touch /var/log/cronauth.log |
Damit die neue Log-Datei auch beim automatischen Logrotate berücksichtigt wird legen wir noch die Datei /etc/logrotate.d/cronauth
mit folgendem Inhalt an:
1 | { |