Übersicht
logrotate verwaltet Protokolldateien periodisch basierend auf Konfigurationsdateien. Alte Protokolle werden gemäß der Aufbewahrungsfrist gelöscht oder komprimiert, um Speicherplatz zu sparen, und neue Protokolldateien werden erstellt, um einen stabilen Systembetrieb zu gewährleisten. Auf den meisten Linux-Systemen wird es täglich automatisch über Cron-Jobs ausgeführt.
Hauptfunktionen
- Automatische Rotation und Aufbewahrung von Protokolldateien
- Komprimierung und Löschung alter Protokolldateien
- Effiziente Verwaltung des Speicherplatzes
- Flexible Regelanwendung basierend auf Konfigurationsdateien
- Standardmäßig in den meisten Linux-Distributionen enthalten
Wichtige Optionen
logrotate arbeitet hauptsächlich über Konfigurationsdateien, aber Sie können Befehlszeilenoptionen verwenden, um bestimmte Aktionen zu steuern.
Ausführungssteuerung
Dateiauswahl
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`logrotate` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
logrotate wird normalerweise automatisch von Cron ausgeführt, kann aber auch manuell ausgeführt oder mit bestimmten Optionen getestet werden.
logrotate mit der Standardkonfigurationsdatei ausführen
sudo logrotate /etc/logrotate.conf
Wird normalerweise von Cron ausgeführt, aber dies ist der Befehl, um logrotate manuell mit der Standardkonfigurationsdatei auszuführen.
Vorschau der Änderungen im Debug-Modus
sudo logrotate -d /etc/logrotate.conf
Ändert die Protokolldateien nicht tatsächlich, sondern simuliert und zeigt an, welche Aktionen logrotate ausführen würde. Unverzichtbar zum Testen neuer Konfigurationen vor der Anwendung.
Protokolldateien zwangsweise rotieren
sudo logrotate -f /etc/logrotate.conf
Ignoriert die Rotationsbedingungen (z. B. Zeit, Größe) und rotiert die Protokolldateien sofort. Wird in Notfällen oder wenn bestimmte Protokolle sofort verarbeitet werden müssen, verwendet.
Ausführen mit der Konfigurationsdatei einer bestimmten Anwendung
sudo logrotate -c /etc/logrotate.d/nginx
Führt logrotate nur mit der Konfigurationsdatei einer bestimmten Anwendung im Verzeichnis `/etc/logrotate.d/` aus.
Tipps & Hinweise
Tipps und Hinweise zur effektiven Nutzung von logrotate.
Speicherorte der Konfigurationsdateien
Die Konfigurationsdateien von logrotate befinden sich hauptsächlich an zwei Orten.
- /etc/logrotate.conf: Globale Konfigurationsdatei, die Standardwerte und andere zu inkludierende Konfigurationsdateien für alle Protokolle enthält.
- /etc/logrotate.d/: Verzeichnis, in dem die Dateien mit den Regeln für die Protokollrotation einzelner Anwendungen (z. B. Nginx, Apache, MySQL) gespeichert sind.
Wichtige Konfigurationsdirektiven
Häufig verwendete Direktiven in logrotate-Konfigurationsdateien.
- rotate N: Behält N rotierte Protokolldateien.
- daily/weekly/monthly/yearly: Gibt die Häufigkeit der Protokollrotation an.
- compress: Komprimiert rotierte Protokolldateien.
- delaycompress: Komprimiert das vorherige Protokoll beim nächsten Rotationszeitpunkt.
- notifempty: Rotiert die Protokolldatei nicht, wenn sie leer ist.
- missingok: Löst keinen Fehler aus, wenn die Protokolldatei fehlt.
- create [mode owner group]: Erstellt eine neue Protokolldatei.
- postrotate/endscript: Definiert Skripte, die nach der Protokollrotation ausgeführt werden sollen.
Testen von Konfigurationsänderungen
Bevor Sie neue logrotate-Konfigurationen anwenden, sollten Sie diese unbedingt mit der Option `-d` (oder `--debug`) testen. Dies ist die sicherste Methode, um die Gültigkeit der Konfiguration zu überprüfen, ohne das tatsächliche System zu beeinträchtigen.
Integration mit Cron
logrotate wird normalerweise täglich automatisch über das Skript `/etc/cron.daily/logrotate` ausgeführt. Dieses Skript liest die Datei `/etc/logrotate.conf` und verarbeitet alle konfigurierten Protokollrotationsaufgaben.