So scrollen Sie manuell durch Protokolle im Linux-System

So scrollen Sie manuell durch Protokolle im Linux-System

Die Protokollrotation ist eine sehr gängige Funktion auf Linux-Systemen. Sie behält den erforderlichen Protokollinhalt für die Systemüberwachung und Fehlerbehebung bei und verhindert gleichzeitig, dass zu viele Protokolle dazu führen, dass eine einzelne Protokolldatei zu groß wird.

Der Protokollrollvorgang läuft wie folgt ab: Aus einer Gruppe von Protokolldateien wird die Protokolldatei mit der größten Nummer (älteste) gelöscht, die verbleibenden Protokolldateien werden fortlaufend nummeriert und ersetzen die älteren Protokolldateien, und die neuere Datei ersetzt sie als aktuelle Protokolldatei. Dieser Prozess lässt sich problemlos automatisieren und die Details können nach Bedarf feinabgestimmt werden.

Verwenden Sie den Befehl logrotate , um Protokollrotationsvorgänge manuell durchzuführen. In diesem Artikel werden die Methode des manuellen Stammrollens und die zu erwartenden Ergebnisse vorgestellt.

Die Beispiele in diesem Artikel gelten für Linux-Systeme wie Ubuntu. Bei anderen Systemtypen können die Protokolldateien und Konfigurationsdateien anders sein, aber der Protokollierungsvorgang ist ähnlich.

Warum müssen wir Baumstämme rollen?

Normalerweise besteht keine Notwendigkeit, Protokolldateien manuell zu rotieren. Das Linux-System rotiert das Protokoll automatisch jeden zweiten Tag (oder öfter) oder entsprechend der Größe der Protokolldatei. Wenn Sie das Protokoll rotieren müssen, um Speicherplatz freizugeben oder einen Teil des Protokolls von der aktuellen Aktivität zu trennen, ist dies abhängig von den Dateirotationsregeln problemlos möglich.

Ein wenig Hintergrund

Nach der Installation des Linux-Systems wurden viele Protokolldateien in den Protokollrotationsbereich aufgenommen. Darüber hinaus legen manche Anwendungen bei der Installation auch Rotationsregeln für die von ihnen generierten Protokolldateien fest. Im Allgemeinen wird die Konfigurationsdatei für die Protokollrotation in /etc/logrotate.d abgelegt. Wenn Sie mehr über die detaillierte Implementierung des Log-Rollings erfahren möchten, können Sie sich auf diesen vorherigen Artikel beziehen.

Beim Protokollrollen wird das aktive Protokoll in einen neuen Namen umbenannt, z. B. „log.1“, und die Datei mit dem vorherigen Namen „log.1“ wird in „log.2“ umbenannt usw. In diesem Dateisatz wird die älteste Protokolldatei (z. B. mit dem Namen log.7) aus dem System gelöscht. Die Dateibenennungsmethode und die Anzahl der bei der Rotation des Protokolls beizubehaltenden Protokolldateien werden durch die Konfigurationsdateien im Verzeichnis /etc/logrotate.d bestimmt. Daher kann es sein, dass einige Protokolldateien nur für wenige Rotationen beibehalten werden, während andere 7 Mal oder öfter rotiert werden.

Beispielsweise könnte das Syslog nach der Protokollrotation folgendermaßen aussehen (beachten Sie, dass die Kommentare am Ende der Zeile nur zeigen, wie sich der Rotationsprozess auf den Dateinamen auswirkt):

$ ls -l /var/log/syslog*
-rw-r----- 1 syslog adm 128674 10. März 08:00 /var/log/syslog <== neue Datei -rw-r----- 1 syslog adm 2405968 9. März 16:09 /var/log/syslog.1 <== vorheriges Syslog
-rw-r----- 1 syslog adm 206451 9. März 00:00 /var/log/syslog.2.gz <== vorheriges syslog.1
-rw-r----- 1 syslog adm 216852 8. März 00:00 /var/log/syslog.3.gz <== vorheriges syslog.2.gz
-rw-r----- 1 syslog adm 212889 7. März 00:00 /var/log/syslog.4.gz <== vorheriges syslog.3.gz
-rw-r----- 1 syslog adm 219106 6. März 00:00 /var/log/syslog.5.gz <== vorheriges syslog.4.gz
-rw-r----- 1 syslog adm 218596 5. März 00:00 /var/log/syslog.6.gz <== vorheriges syslog.5.gz
-rw-r----- 1 syslog adm 211074 4. März 00:00 /var/log/syslog.7.gz <== vorheriges syslog.6.gz

Möglicherweise stellen Sie fest, dass mit Ausnahme des aktuell aktiven Protokolls und der zuletzt gerollten Protokolldatei alle anderen Dateien komprimiert wurden, um Speicherplatz zu sparen. Der Grund für dieses Design ist, dass die meisten Systemadministratoren nur die neueste Protokolldatei überprüfen müssen. Die übrigen Protokolldateien sind komprimiert und können bei Bedarf dekomprimiert und überprüft werden. Dies ist ein guter Kompromiss.

Manuelle Protokollrotation

Sie können den Befehl logrotate ausführen, um die Protokolle manuell zu rotieren:

$ sudo logrotate -f /etc/logrotate.d/rsyslog

Erwähnenswert ist, dass der Befehl logrotate die Konfigurationsdatei /etc/logrotate.d/rsyslog verwendet und eine „erzwungene Rotation“ über den Parameter -f implementiert. Der gesamte Prozess sieht daher wie folgt aus:

  • Löschen Sie syslog.7.gz.
  • Benennen Sie die ursprüngliche Datei syslog.6.gz in syslog.7.gz um.
  • Benennen Sie die ursprüngliche Datei syslog.5.gz in syslog.6.gz um.
  • Benennen Sie die ursprüngliche Datei syslog.4.gz in syslog.5.gz um.
  • Benennen Sie die ursprüngliche Datei syslog.3.gz in syslog.4.gz um.
  • Benennen Sie die ursprüngliche Datei syslog.2.gz in syslog.3.gz um.
  • Benennen Sie die ursprüngliche Datei syslog.1.gz in syslog.2.gz um.
  • Es müssen allerdings nicht zwingend neue Syslog-Dateien erstellt werden.

Mit den folgenden Befehlen können Sie sicherstellen, dass die Dateieigentümerschaft und Berechtigungen korrekt sind:

$ sudo touch /var/log/syslog
$ sudo chown syslog:adm /var/log/syslog
$ sudo chmod 640 /var/log/syslog

Sie können auch die folgende Zeile zu /etc/logrotate.d/rsyslog hinzufügen und logrotate die drei obigen Befehle für Sie ausführen lassen:

0640 Syslog-Admin erstellen

Der Inhalt der gesamten Konfigurationsdatei ist wie folgt:

/var/log/syslog
{
drehen 7
täglich
fehltok
Benachrichtigungleer
Erstellen Sie 0640 Syslog Adm <==
Verzögerungskomprimierung
Kompresse
nachrotieren
/usr/lib/rsyslog/rsyslog-rotate
Endskript
}

Nachfolgend sehen Sie ein Beispiel für das manuelle Scrollen im wtmp-Protokoll, das Benutzeranmeldeinformationen aufzeichnet. Aufgrund der Konfiguration von „Rote 2“ in /etc/logrotate.d/wtmp werden nur zwei Kopien der wtmp-Protokolldateien im System gespeichert.

Vor dem Rollen:

$ ls -l wtmp*
-rw-r----- 1 root utmp 1152 12. März 11:49 wtmp
-rw-r----- 1 root utmp 768 11. März 17:04 wtmp.1

Führen Sie den Scroll-Befehl aus:

$ sudo logrotate -f /etc/logrotate.d/wtmp

Nach dem Scrollen:

$ ls -l /var/log/wtmp*
-rw-r----- 1 root utmp 0 Mär 12 11:52 /var/log/wtmp
-rw-r----- 1 root utmp 1152 12. März 11:49 /var/log/wtmp.1
-rw-r----- 1 root adm 99726 Feb 21 07:46 /var/log/wtmp.report

Es ist wichtig zu wissen, dass unabhängig davon, ob das Protokollieren automatisch oder manuell erfolgt, der letzte Zeitpunkt des Protokollierens in der logrorate -Statusdatei aufgezeichnet wird.

$ grep wtmp /var/lib/logrotate/status
"/var/log/wtmp" 2020-3-12-11:52:57

Zusammenfassen

Dies ist das Ende dieses Artikels über das manuelle Rolling Logs im Linux-System. Weitere relevante Inhalte zum Linux-Rolling Log finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des Befehls zum Anzeigen von Protokolldateien in der Linux-Umgebung
  • Zusammenfassung von 6 Methoden zur Anzeige von Linux-Protokollen
  • Eine einfache Methode zum Implementieren der zeitgesteuerten Protokolllöschung unter Linux
  • So verwenden Sie die Glog-Protokollbibliothek in einer Linux-Umgebung
  • Detaillierte Einführung in Protokolle im Linux-System

<<:  jQuery + h5 realisiert den Spezialeffekt der Neun-Quadrate-Lotterie (Front-End- und Back-End-Code)

>>:  So beheben Sie den 10060-Unknow-Fehler, wenn Navicat eine Remote-Verbindung zu MySQL herstellt

Artikel empfehlen

Notieren Sie eine Falle bei der Aktualisierung der MySQL-Update-Anweisung

Hintergrund Kürzlich habe ich während eines Onlin...

Detaillierte Erklärung der MySQL 30-Militärregeln

1. Grundlegende Spezifikationen (1) Es muss die I...

So öffnen Sie externe Netzwerkzugriffsrechte für MySQL

Wie unten dargestellt: Führen Sie hauptsächlich A...

Drei nützliche Codes, damit sich Besucher an Ihre Website erinnern

Drei nützliche Codes, die Besuchern dabei helfen,...

Detaillierte Erklärung der verfügbaren Umgebungsvariablen in Docker Compose

Mehrere Teile von Compose befassen sich in irgend...

Erfahrungsaustausch zur Optimierung von MySQL-Big-Data-Abfragen (empfohlen)

Ernsthafte MySQL-Optimierung! Wenn die MySQL-Date...

Implementierung von React Routing Guard (Routing-Interception)

React unterscheidet sich von Vue. Es implementier...

So verwenden Sie den MySQL-Autorisierungsbefehl „grant“

Die Beispiele in diesem Artikel laufen auf MySQL ...

Befehle zum Deaktivieren und Aktivieren von MySQL-Fremdschlüsseleinschränkungen

Deaktivieren und Aktivieren von MySQL-Fremdschlüs...

Nach dem Absenden des Formulars zu einer anderen Datei wechseln

<br />Frage: Wie schreibe ich in HTML, um zu...