Linux Logrotate Konfigurations-Generator (Aufbewahrung & Komprimierung)
SysAdmin & DevOps

Linux Logrotate Konfigurations-Generator (Aufbewahrung & Komprimierung)

Erstellen Sie produktionsreife /etc/logrotate.d/-Konfigurationsdateien mit täglicher/wöchentlicher Rotation, gzip-Komprimierung, dateext, Größenbeschränkungen und postrotate-Skripten.

100% clientseitige Privatsphäre
Null Serverübertragung
Vorlagen:
Logrotate Parameter & Richtlinien
Zieldatei & Speicherort/etc/logrotate.d/nginx
Rotationsfrequenz & AufbewahrungslimitsBehält 14 rotierte Dateien
Compression & Timestamping (dateext)~85% Speicherplatzersparnis
Dateiberechtigungen & Prozesssicherheitcopytruncate vs create
Reload Signals & Scripts (postrotate)
Wird nach Rotation ausgeführt
Wird vor Rotation ausgeführt
/var/log/nginx/*.log {
    daily
    rotate 14
    maxage 30
    missingok
    notifempty
    compress
    delaycompress
    dateext
    dateformat -%Y%m%d
    dateyesterday
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 $(cat /var/run/nginx.pid)
    endscript
}
Rotation & Frequenz
DAILY (14 copies)

Behält bis zu spezifizierten Generationen vor der automatischen Löschung.

Komprimierung & Speicher
Gzip (delaycompress)

Estimated ~85% disk storage savings with background gzip.

Berechtigungen & Lebenszyklus
create 0640 www-data

Atomic file rotation with new file recreation and custom permissions.

100% Client-Seitige Generierung

Keine Server-Uploads. Ihre Dateipfade, Skripte und Serverdaten verbleiben vollständig im sicheren Browserspeicher.

Vollständige Logrotate-Spezifikation

Umfassende Unterstützung für copytruncate, delaycompress, dateext-Zeitstempel, Größenlimits, sharedscripts und su-Rechte.

Produktionsbereit & Syntaxgeprüft

Sofortige Erstellung von Konfigurationsdateien, 'logrotate -d' Trockenlauf-Prüfungen und automatisierten Shell-Skripten.

Technische Referenz & Architektur-Leitfaden

Linux Logrotate-Konfigurationsgenerator (Aufbewahrung & Komprimierung) — Referenz-Leitfaden

Erstellen Sie produktionsreife /etc/logrotate.d/-Konfigurationsdateien mit täglicher/wöchentlicher Rotation, gzip-Komprimierung, dateext, Größenbeschränkungen und postrotate-Skripten.

Wichtige Parameter & Steuerelemente

rotateDirektive

Gibt die Anzahl der aufzubewahrenden Archivgenerationen an, bevor ältere Logdateien gelöscht werden.

Standard: 4
frequencyDirektive

Bestimmt das zeitbasierte Rotationsintervall: daily (täglich), weekly (wöchentlich), monthly (monatlich) oder yearly (jährlich).

Standard: weekly
compressDirektive

Aktiviert die gzip-Komprimierung für rotierte Logdateien zur Einsparung von Speicherplatz.

Standard: compress
delaycompressDirektive

Verschiebt die Komprimierung der zuletzt rotierten Datei auf den nächsten Zyklus, um I/O-Schreibkonflikte zu vermeiden.

Standard: delaycompress
createDirektive

Definiert Dateiberechtigungen (Oktalmodus), Benutzer und Gruppe für die sofort nach der Rotation neu erstellte aktive Logdatei.

Standard: 0640 root adm
copytruncateDirektive

Kopiert die aktive Logdatei und schneidet das Original an Ort und Stelle auf 0 Bytes ab (für Daemons ohne Signalunterstützung).

Standard: deaktiviert
postrotateBlock

Definiert Shell-Befehle, die nach Abschluss der Rotation ausgeführt werden (z. B. systemctl reload zum Neuladen von Daemons).

Standard: optional

Profi-Tipps & Best Practices

Dienste wie Nginx oder PostgreSQL

Dienste wie Nginx oder PostgreSQL schreiben weiterhin in geöffnete Dateideskriptoren, bis sie ein Signal erhalten. delaycompress verhindert Datenverlust durch das Komprimieren aktiver Schreibkanäle.

Wenn Sie Muster wie

Wenn Sie Muster wie /var/log/nginx/*.log nutzen, führt das Weglassen von sharedscripts dazu, dass das postrotate-Skript für jede einzelne gefundene Datei separat ausgeführt wird.

Testen Sie jede neue Konfiguration mit

Testen Sie jede neue Konfiguration mit 'logrotate -d /etc/logrotate.d/myapp'. Der Schalter -d analysiert die Syntax und simuliert Aktionen, ohne Änderungen am Dateisystem vorzunehmen.

Zwischen dem Kopieren und dem

Zwischen dem Kopieren und dem Abschneiden (Truncate) besteht ein winziges Zeitfenster, in dem eingehende Logs verloren gehen können. Nutzen Sie Signal-Reloads (USR1/SIGHUP), wenn die Anwendung dies unterstützt.

Häufige Fallstricke & Fehlerbehebung

Fehler 'error: skipping ... parent directory has insecure permissions'

Logrotate bricht ab, wenn Konfigurationsdateien oder übergeordnete Verzeichnisse Schreibrechte für Gruppen oder Dritte besitzen. Setzen Sie 'chmod 0644 /etc/logrotate.d/myapp' und Verzeichnisrechte auf 0755 bzw. 0750.

Anwendung schreibt weiterhin in die rotierte .1-Datei statt in die neue Logdatei

Linux bindet Schreibvorgänge an Inodes, nicht an Dateinamen. Fügen Sie einen postrotate-Block mit 'systemctl reload <service>' ein, um den Dateideskriptor neu zu öffnen, oder aktivieren Sie copytruncate.

Logdateien rotieren unerwartet häufig oder außerhalb des Zeitplans

Prüfen Sie, ob 'size' oder 'maxsize' zusammen mit Zeitintervallen definiert wurden, und untersuchen Sie die Statusdatei /var/lib/logrotate/status auf die zuletzt erfassten Zeitstempel.

Häufig gestellte Fragen (FAQ)

Wo werden benutzerdefinierte Logrotate-Konfigurationsdateien unter Linux gespeichert?▼

Dienstspezifische Konfigurationen werden im Verzeichnis /etc/logrotate.d/ abgelegt (z. B. /etc/logrotate.d/myapp). Die zentrale Steuerdatei /etc/logrotate.conf liest diesen Ordner automatisch ein.

Was ist der technische Unterschied zwischen create und copytruncate?▼

'create' benennt die vorhandene Logdatei um und erzeugt sofort eine neue leere Datei, wodurch der Daemon seinen Dateideskriptor per Signal neu laden muss. 'copytruncate' kopiert den Dateiinhalt und schneidet das Original im laufenden Betrieb auf 0 Bytes ab, was keinen Prozessneustart erfordert.

Welchen Vorteil bietet die Direktive dateext gegenüber fortlaufenden Nummern?▼

Mit 'dateext' erhalten rotierte Archive einen festen Datumsstempel (z. B. YYYYMMDD) anstelle von .1 oder .2.gz. Dadurch ändern sich Dateinamen bei Folgezyklen nicht, was Log-Shippern wie Fluentd oder Logstash doppelte Ingestionen erspart.

Wie kann ich eine Logrotation für Tests oder Speicherplatzbereinigung sofort erzwingen?▼

Führen Sie 'logrotate -vf /etc/logrotate.d/myapp' aus. Der Schalter -v zeigt detaillierte Protokollausgaben, während -f (force) die Rotation unabhängig von Zeit- und Größenbedingungen sofort durchführt.

Warum ist die su-Direktive auf modernen Linux-Distributionen erforderlich?▼

Wenn ein Log-Verzeichnis einem Nicht-Root-Benutzer (z. B. www-data oder mysql) gehört, erzwingt logrotate die Direktive 'su <user> <group>', um Root-Rechte vor Dateioperationen abzugeben und Symlink-Sicherheitslücken zu verhindern.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →