Alle meine Logfiles
Log-Dateien bearbeiten
Logrotate lässt Logs rotieren
Etwas eleganter als das SuSE-Skript tritt das Tool logrotate auf, das ebenfalls mit dem cron-Daemon Hand in Hand arbeitet. Der Befehl man logrotate informiert Sie über die reichhaltigen Möglichkeiten der Konfiguration, die wir im Rahmen dieses Artikel leider nur anschneiden können.
Die Konfiguration des Programms erstellen Sie in der Datei /etc/logrotate.conf. Das Skript, mit dem cron täglich logrotate startet, liegt im Pfad /etc/cron.daily/logrotate. Und schließlich gibt es noch das Verzeichnis /etc/logrotate.d. Die Dateien innerhalb dieses Verzeichnisses überschreiben oder verfeinern die Grundeinstellungen der Konfigurationsdatei /etc/logrotate.conf.
Um auch hier Licht in das Dickicht der Verzeichnisse zu tragen, beginnen wir unsere Reise in der Hauptkonfiguration in der Datei /etc/logrotate.conf.
Der erste Eintrag weist logrotate an, die Logfiles einmal pro Woche zu rotieren:
# Wöchentliche Rotation weekly
Durch die Zeile weekly komprimiert das Programm nach einer Woche die Beispiel-Datei /var/log/dat und nennt sie /var/log/dat1.gz, bevor es eine frische Datei mit dem Namen dat im Verzeichnis /var/log/ erstellt. In der Woche darauf verwandelt es die Datei /var/log/dat1.gz in /var/log/dat2.gz, bis irgendwann der Zeitpunkt zum Löschen der archivierten Dateien kommt:
# Haltbarkeit der archivierten Logs: # Acht Wochen rotate 8
Fehlermeldungen im Programmablauf schickt logrotate direkt an den Administrator, wenn Sie möchten:
# Fehlermeldungen an den root errors root
Mit einer weiteren Anweisung erstellt das Tool eine neue Log-Datei, wenn es das alte Logfile komprimiert hat:
# Erstellt ein neues Logfile create
Kein Linux/Unix-Programm handelt eigenmächtig. Geben Sie logrotate deshalb die Erlaubnis, die archivierten Datein zu komprimieren:
# Logfiles komprimieren compress
Wenn Sie eine Ablage für Ihr Log-Archiv wünschen, dann verschiebt logrotate die komprimierten Dateien in ein Unterverzeichnis des Pfades /var/log:
# Wo soll das Archiv sein? olddir /var/log/OLD
Einige Programme, so der Mailserver exim, erstellen bei Ihrer Installation eine logrotate-Konfiguration im Verzeichnis /etc/logrotate.d. Der include-Befehl der folgenden Zeile bindet das externe Verzeichnis in die Arbeit des logrotate ein:
# Externe Konfigurationen include /etc/logrotate.d
Diese eingebundenen Dateien überschreiben die Angaben der globalen Konfigurationsdatei /etc/logrotate.conf und lassen flexible Lösungen zu. Sehen wir uns so eine Ausnahme-Konfiguration einmal aus der Nähe an:
/var/log/exim/mainlog {
create 640 mail mail
mail tux@nordpol.fi
postrotate
/usr/bin/killall -HUP exim || true
endscript
}Die Konfiguration dieser Anweisung beschäftigt sich mit der Log-Datei /var/log/exim/mainlog. In die geschweiften Klammern eingeschlossen, finden Sie die unterschiedlichen Kommandos. Durch die Zeile
create 640 mail mail
erstellt logrotate eine neue Datei /var/log/exim/mainlog mit den Zugriffsbits 640, dem Eigentümer mail und der Gruppe mail. Der Eintrag
mail tux@nordpol.fi
versendet die älteste Log-Datei an die Mailadresse tux@nordpol.fi und löscht sie aus dem heimischen Archiv. Zwischen den Zeilen postrotate und endscript steht es Ihnen frei, ein Kommando zu bestimmen, das nach dem Rotieren ausgeführt wird. In unserem Fall wird der Mailserver exim in seinem Wirken unterbrochen, damit der Administrator die Log-Datei auf Fehlermeldungen hin untersuchen kann. Gleichgültig, was er dort finden mag: Mit den vorgestellten Tools und Programmen entdeckt er es schneller und effektiver - in einem schlanken Archiv.



