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:

Apr 29 10:21:01 meinserver CRON[19888]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 10:21:01 meinserver CRON[19888]: pam_unix(cron:session): session closed for user root
Apr 29 10:22:01 meinserver CRON[19891]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 10:22:01 meinserver CRON[19891]: pam_unix(cron:session): session closed for user root

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:

# Cronjob-Spam umleiten
:msg, contains, "pam_unix(cron:session):" -/var/log/cronauth.log
& stop

Wichtig ist dabei das & stop in der letzten Zeile, da sonst die Logeinträge in beiden Dateien ankommen.

Ältere Versionen des rsyslog verwenden hier noch & ~ anstelle von & stop.

 

Um die Änderungen zu Übernehmen müssen wir rsyslog noch neu starten:

systemctl restart rsyslog.service bzw. /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:

touch /var/log/cronauth.log
chown syslog:adm /var/log/cronauth.log
chmod 0640 /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:

/var/log/cronauth.log
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}