logrotate
logrotate ist ein Linux-Dienstprogramm, das Protokolldateien rotiert, komprimiert und entfernt, damit diese nicht den Speicherplatz füllen. Es wird normalerweise einmal täglich über einen systemd-Timer oder einen cron-Job ausgeführt und liest /etc/logrotate.conf sowie die paketbezogenen Regeln in /etc/logrotate.d/.
1Eine typische Regel
Eine Regel benennt eine oder mehrere Protokolldateien und Anweisungen wie daily oder weekly (wie oft), rotate 7 (wie viele alte Dateien behalten werden sollen), compress (alte Dateien mit gzip komprimieren), missingok (kein Fehler, wenn die Datei fehlt), notifempty (leere Protokolle überspringen) und postrotate ... endscript (ein Befehl, der nach der Rotation ausgeführt wird, zum Beispiel um das Protokoll erneut zu öffnen).
2copytruncate
Einige Programme schreiben kontinuierlich in dieselbe geöffnete Datei. copytruncate kopiert das Protokoll und schneidet anschließend das Original ab, anstatt es zu verschieben, sodass das Programm seinen Dateihandle behält; einige Zeilen, die während des Kopiervorgangs geschrieben werden, können verloren gehen.
3Testen
logrotate -d /etc/logrotate.conf wird im Debug-Modus ausgeführt und gibt nur aus, was passieren würde. -f erzwingt eine Rotation, auch wenn diese noch nicht fällig ist.
So fügen Sie eine Regel hinzu und testen sie
- Erstellen Sie
/etc/logrotate.d/myappmit dem Protokollpfad und den Anweisungen, zum Beispiel weekly, rotate 4, compress, missingok, notifempty. - Trockenlauf:
sudo logrotate -d /etc/logrotate.d/myapp - Wenn die Ausgabe korrekt aussieht, erzwingen Sie eine Rotation:
sudo logrotate -f /etc/logrotate.d/myapp - Überprüfen Sie das Ergebnis: ls -l im Protokollverzeichnis.
Vorsicht
- Ein falsches Pfadmuster kann Protokolle anderer Programme rotieren oder löschen.
- Protokolle, die vom systemd-Journal verwaltet werden, werden in journald.conf begrenzt, nicht durch logrotate.
Verwandte Artikel
- journalctl und das systemd-JournalErfahren Sie, wie Sie Protokolle mit journalctl lesen, den Speicherplatzbedarf des Journals prüfen und es mit --vacuum-Optionen sicher verkleinern.
- Festplattenbelegung mit du und ncduSo finden Sie mit du und dem interaktiven ncdu heraus, was eine Linux-Festplatte füllt, unter Verwendung von Optionen, die auf einem Dateisystem bleiben.
- cron und crontabWie cron geplante Aufgaben ausführt, die fünf crontab-Zeitfelder, wo sich System-cron-Dateien befinden und wie systemd-Timer im Vergleich abschneiden.
Quellen
- logrotate(8) man7.org
- logrotate(8) (Debian) manpages.debian.org
Zuletzt geprüft: