# logrotate

> Was logrotate macht, wie die Konfiguration in /etc/logrotate.conf und /etc/logrotate.d funktioniert und wie man eine Regel sicher testet.

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/.

## Eine 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).

## copytruncate

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.

## Testen

'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

1. Erstellen Sie /etc/logrotate.d/myapp mit dem Protokollpfad und den Anweisungen, zum Beispiel weekly, rotate 4, compress, missingok, notifempty.
2. Trockenlauf: sudo logrotate -d /etc/logrotate.d/myapp
3. Wenn die Ausgabe korrekt aussieht, erzwingen Sie eine Rotation: sudo logrotate -f /etc/logrotate.d/myapp
4. Ü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.

## Quellen

- [logrotate(8)](https://man7.org/linux/man-pages/man8/logrotate.8.html)
- [logrotate(8) (Debian)](https://manpages.debian.org/bookworm/logrotate/logrotate.8.en.html)

Zuletzt aktualisiert: 2026-10-08
URL: https://raincleaner.eu/de/wiki/linux/logrotate
