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 | { |