Logrotate ist ein Befehlszeilentool von Linux zum Verwalten der Protokolleinträge. Dieses Tool hilft dem Administrator dabei, verschiedene Arten von Aufgaben an Protokolleinträgen auszuführen, z. B. die rotierten Protokolldateien einzuschränken, die rotierten Protokolldateien zu komprimieren, unnötige Protokolldateien zu löschen, das jeweilige Shell-Skript basierend auf den Protokolldateien auszuführen usw. Die Verwendungsmöglichkeiten Die Funktionsweise des Befehls „logrorate“ zur Verwaltung der Protokolldateien auf unterschiedliche Weise wird in diesem Tutorial anhand mehrerer Beispiele gezeigt.
Überprüfen Sie die installierte Logrotate-Version
Der Befehl „logrotate“ ist in der neuen Version des Ubuntu-Betriebssystems standardmäßig installiert. Führen Sie den folgenden Befehl aus, um die installierte Version des Befehls „logrotate“ zu überprüfen:
$ logrotieren --Ausführung
Die Protokolleinträge der verschiedenen Anwendungen werden standardmäßig im Ordner „/var/log“ gespeichert. Der folgende ähnliche Inhalt wird angezeigt, wenn Sie den Inhalt des Ordners überprüfen.
$ ls / War / Protokoll
Legen Sie die „Logrotate“-Konfiguration fest
Einstellungswert | Zweck |
täglich/wöchentlich/monatlich/jährlich | Es definiert die Zeitdauer zum Rotieren der Protokolle. |
Zahl drehen | Es definiert die Anzahl der Dateien, die aufbewahrt werden, bevor die alten Protokolldateien entfernt werden. |
Kompresse | Es wird zum Komprimieren der Protokolldateien verwendet. |
compresscmd | Es wird verwendet, um den Befehl „komprimieren“ festzulegen. gzip ist der Standardbefehl. |
uncompresscmd | Es wird verwendet, um den Befehl „Unkomprimieren“ festzulegen. Der gunzip ist der Standardbefehl. |
Verzögerungskomprimieren | Es wird verwendet, um den Komprimierungsprozess der Protokolldateien zu verzögern. |
Benachrichtigung leer | Es wird verwendet, um die leere Datei nicht zu drehen. |
ich vermisse | Wenn es gesetzt ist, wird kein Fehler für die fehlenden Protokolldateien generiert. |
Größe | Es wird verwendet, um das Limit festzulegen, mit dem die Protokolldateien rotiert werden sollen. |
dateext | Es wird verwendet, um einen Datumswert als Suffix der Rotationsdatei hinzuzufügen. |
kopieren, abschneiden | Es wird verwendet, um eine Kopie der Originaldatei zu erstellen. |
vorgedreht | Es wird verwendet, um ein Skript auszuführen, bevor die Protokolldateien rotiert werden. |
nachrotieren | Es wird verwendet, um nach dem Rotieren der Protokolldateien ein Skript auszuführen. |
erstellen | Es wird verwendet, um die Protokolldateien mit Root-Rechten zu erstellen. |
Syntax:
Die Syntax des Befehls „logrotate“ lautet wie folgt:
logrotieren [ MÖGLICHKEIT ] config_file_path
Mit dem Befehl „logrotate“ können verschiedene Arten von Optionen für unterschiedliche Zwecke verwendet werden.
Logrotate-Optionen
Im Folgenden werden einige nützliche Optionen des Befehls „logrotate“ erwähnt:
-f, –force | Es wird verwendet, um die Drehung bei Bedarf kraftvoll auszuführen. |
-d, –debug | Es wird verwendet, um den Debug-Modus während der Rotation zu aktivieren. |
-m, –mail |
Es wird verwendet, um während der Rotation eine E-Mail zu versenden. |
-s, –state |
Es wird für alternative Statusdateien verwendet. |
-Verwendung | Es dient zum Ausdrucken der Nutzungsinformationen. |
-?, -helfen | Es wird zum Drucken der Hilfsnachrichten verwendet. |
-v, –ausführlich | Es wird zum Drucken im ausführlichen Modus verwendet. |
Logrotate-Konfigurationsdatei
Die Hauptkonfigurationsdatei von Logrotate befindet sich am Speicherort „/etc/logrotate.conf“. Führen Sie den folgenden Befehl aus, um die Datei im Nano-Editor zu öffnen:
$ Nano / usw / logrotate.confDie Standardeinstellung des Befehls „logrotate“ wird in der Datei „logrotate.conf“ angezeigt. Die „include“-Direktive wird in der Datei verwendet, um die Konfiguration abzurufen, die sich im Verzeichnis „/etc/logrotate.d“ befindet.
Beispiel 1: Erstellen Sie eine einfache Logrotate-Konfigurationsdatei
Erstellen Sie eine Beispielprotokolldatei mit dem Namen „/var/log/test.log“ mit den Beispielprotokolldaten. Führen Sie den folgenden Befehl aus, um den Nano-Editor zu öffnen und eine neue Datei „logrotate.conf“ im Ordner „/etc/tmp“ zu erstellen. Erstellen Sie den Ordner „/tmp“ mit Root-Rechten, falls er noch nicht erstellt wurde.
$ Nano / usw / tmp / logrotate.confFügen Sie der Datei „/var/log/test.log“ den folgenden Inhalt hinzu. Je nach Einstellung wird die Datei „test.log“ täglich rotiert, wenn die Dateigröße 5 KB überschreitet:
/ War / Protokoll / test.log {täglich
Größe 5K
sein Root-Adm
}
Führen Sie den folgenden Befehl aus, um die Größe der Protokolldatei zu überprüfen:
$ ls -l / War / Protokoll / test.logFühren Sie den Befehl „logrotate“ aus, nachdem Sie die Konfigurationsdatei erstellt haben.
$ Sudo logrotieren / usw / tmp / logrotate.confFühren Sie den folgenden Befehl erneut aus, um die Größe der Protokolldatei nach der Ausführung des Befehls „logrotate“ zu überprüfen:
$ ls -l / War / Protokoll / test.logDie Größe der Datei „test.log“ beträgt 1 KB+. Es erfolgt also keine Rotation basierend auf der Konfigurationseinstellung.
Ändern Sie den Größenwert in der Datei „/etc/tmp/logrotate.conf“ auf 1K und führen Sie den Befehl „ls“ erneut aus, um die Dateigröße von „/var/log/test.log“ zu überprüfen. Der Ausgabe zufolge wird die Protokolldatei rotiert und gelöscht, da die Größenbeschränkung überschritten wurde.
Beispiel 2: Verwendung von Logrotate Copytruncate
Erstellen oder ändern Sie die Datei „/etc/tmp/logrotate.conf“ mit den folgenden Einstellungen, um die Verwendung von copytruncate anzuzeigen. Gemäß den neuen Einstellungen erstellt Logrotate eine Kopie der Originaldatei, indem die ursprüngliche Dateigröße auf Null gesetzt wird.
/ War / Protokoll / test.log {drehen 5
Größe 1 k
kopieren, abschneiden
sein Root-Adm
}
Führen Sie den folgenden Befehl aus, um die Größe der Datei „test.log“ zu überprüfen:
$ ls -l / War / Protokoll / test.logFühren Sie den Befehl „logrotate“ aus, nachdem Sie die Konfigurationsdatei erstellt haben.
$ Sudo logrotieren / usw / tmp / logrotate.confFühren Sie den folgenden Befehl erneut aus, um die Größe der Datei „test.log“ zu überprüfen, nachdem Sie den Befehl „logrotate“ ausgeführt haben:
$ ls -l / War / Protokoll / test.logDie ursprüngliche Dateigröße wird 0, nachdem der Befehl „logrotate“ für die Einstellung „copytruncate“ ausgeführt wurde.
Beispiel 3: Verwendung von Logrotate Compress
Erstellen oder ändern Sie die Datei „/etc/tmp/logrotate.conf“ mit den folgenden Einstellungen, um die Verwendung der Komprimierung anzuzeigen. Gemäß den neuen Einstellungen erstellt Logrotate eine Komprimierungsdatei der Originaldatei.
/ War / Protokoll / test.log {drehen 5
Größe 1 k
Kompresse
erstellen 770 Root-Adm
}
Führen Sie den folgenden Befehl aus, um die Liste der Dateien und Ordner von „/var/log“ zu überprüfen:
$ ls / War / Protokoll /Führen Sie den Befehl „logrotate“ aus, nachdem Sie die Konfigurationsdatei erstellt haben.
$ Sudo logrotieren / usw / tmp / logrotate.confFühren Sie den folgenden Befehl erneut aus, um die Liste der Dateien und Ordner von „/var/log“ zu überprüfen:
$ ls / War / Protokoll /Die komprimierte Datei der Datei „test.log“ wird mit dem Namen „test.log.1.gz“ erstellt und die Originaldatei entfernt.
Beispiel 4: Verwendung von Logrotate Dateext
Erstellen oder ändern Sie die Datei „/etc/tmp/logrotate.conf“ mit den folgenden Einstellungen, um die Verwendung von dateext anzuzeigen. Gemäß den neuen Einstellungen erstellt logrotate eine Komprimierungsdatei der Originaldatei mit dem Datumswert.
War / Protokoll / test.log {sein Root-Adm
drehen 5
Größe 1 k
Kompresse
erstellen 770 Root-Adm
dateext
}
Führen Sie den Befehl „logrotate“ aus, nachdem Sie die Konfigurationsdatei erstellt haben.
$ Sudo logrotieren / usw / tmp / logrotate.confFühren Sie den folgenden Befehl aus, um die Liste der Dateien und Ordner von „/var/log“ zu überprüfen:
$ ls -l / War / Protokoll /Die komprimierte Datei der Datei „test.log“ wird mit dem Namen „test.log.20240129.gz“ erstellt und die Originaldatei entfernt.
Beispiel 5: Verwendung von Logrotate Maxage
Erstellen oder ändern Sie die Datei „/etc/tmp/logrotate.conf“ mit den folgenden Einstellungen, um die Verwendung von maxage anzuzeigen. Gemäß den Einstellungen behält logrotate fünf Protokolleinträge, wenn die Größe der Protokolldatei nach einem Tag 1 KB überschreitet.
/ War / Protokoll / test.log {sein Root-Adm
drehen 5
Größe 1 k
Kompresse
maxage 1
}
Führen Sie den folgenden „logrotate“-Befehl aus, um die Ausgabe in einer anderen Protokolldatei namens „out.log“ zu speichern:
$ Sudo logrotieren -S = / War / Protokoll / out.log / usw / tmp / logrotate.confGemäß der folgenden Ausgabe wird die Datei „out.log“ nach Ausführung des Befehls „logrotate“ erstellt:
Beispiel 6: Verwendung von Logrotate Missingok
Erstellen oder ändern Sie die Datei „/etc/tmp/logrotate.conf“ mit den folgenden Einstellungen. Hier existiert die Protokolldatei „testfile.log“ nicht im Ordner „/var/log“.
/ War / Protokoll / testfile.log {sein Root-Adm
drehen 5
Größe 1 k
Kompresse
}
Nach der Ausführung des Befehls „logrotate“ wird eine Fehlermeldung ausgegeben.
Fügen Sie die Einstellung „missingok“ in der Logrotate-Konfigurationsdatei hinzu und führen Sie den Befehl „logrotate“ erneut aus. Für die fehlende Protokolldatei wird kein Fehler ausgegeben.
Beispiel 7: Verwendung von Logrotate Prerotate
Erstellen Sie mit dem folgenden Skript eine Bash-Datei namens „test.sh“, die eine einfache Nachricht ausgibt. Die Datei wird in diesem Logrotate-Beispiel verwendet, um die Verwendung von Prerotate in der Logrotate-Konfigurationsdatei zu zeigen.
test.sh#!/bin/bash
Echo „Logrotate-Beispiele…“
Führen Sie nach dem Erstellen der Datei den folgenden Befehl aus, um die Ausführungsberechtigung dieser Datei für alle Benutzer festzulegen:
$ chmod a+x / heim / Verständnis / test.shErstellen oder ändern Sie nun die Datei „/etc/tmp/logrotate.conf“ mit den folgenden Einstellungen. Gemäß den Einstellungen behält logrotate fünf Protokolleinträge bei, wenn die Größe der Protokolldatei 1 KB überschreitet und die Datei „test.sh“ vor der Rotation ausgeführt wird.
/ War / Protokoll / test.log {sein Root-Adm
drehen 5
Größe 1 k
vorgedreht
/ heim / Verständnis / test.sh
Endskript
}
Die Ausgabe der Datei „test.sh“ wird nach Ausführung des Befehls „logrotate“ angezeigt:
Abschluss
Die verschiedenen Einsatzmöglichkeiten des Befehls „logrotate“ werden in diesem Tutorial anhand mehrerer Beispiele gezeigt, die dem Linux-Benutzer helfen, die Einsatzmöglichkeiten des Befehls zu kennen und die Protokolldateien richtig zu verwalten.