Nils und ich haben uns heute
eine ganze Weile mit Debians Eigentümlichkeiten rumgeschlagen.
Ausgangspunkt war die Frage, wie man Anpassungen bei dem
Rotationsintervall von Standard-Logdateien, wie z.B.
mail.log vornehmen könnte. Man sollte annehmen, dass ein
paar simple Modifikationen an der logrotate Konfiguration reichen
würden, aber weit gefehlt.
Leider ist Debians Policy alles andere als stringent: die meisten Pakete
verwenden logrotate, während einige Pakete eigene Lösungen verwenden.
Das syslog-Paket bedient sich des savelog-Tools, in einer für
Standardfälle sicherlich arbeitssparenden, aber leider auch recht
intransparenten Weise: Zuständig für die Rotation ist der Cronjob
sysklogd in /etc/cron.daily/ bzw. /etc/cron.weekly/.
Dieser wiederum bedient sich des Tools syslogd-listfiles, welches
die aktuelle syslog.conf ausliest und die darin gefunden
Dateien nach bestimmten Kriterien rotiert.
Wer das ganze lieber logrotate überlassen will, der lasse sich
einfach mit syslogd-listfiles -a alle betroffenen
Logdateien ausgeben, füge sie der logrotate-Konfiguration hinzu und
lösche einfach den oben genannten Cronjob.
Die Kriterien nach denen Logdateien rotiert werden
sind übrigens folgende:
- Syslog Eintrage mit einem Catchall (*.*) werden täglich rotiert.
- Alle anderen Einträge werden täglich rotiert, sofern sie größer als 1 Megabyte sind.
- Was überbleibt wird wöchentlich rotiert.
Von Dateien, die täglich rotiert werden, wird ein Backlog von 7
Tagen aufbewahrt. Dateien die wöchentlich rotiert werden 4 Wochen.
Eine weitere Inkonsistenz, die nicht nach meinem Geschmack ist.
PS: Wer (wie ich in früheren Installationen) syslog-ng verwendet braucht sich diese Mühe nicht machen.
Das Paket syslog-ng verwendet wie gewohnt logrotate.
Kommentare