Logrotate implementiert alle zwei Stunden die Catalina.out-Protokollrotation

Logrotate implementiert alle zwei Stunden die Catalina.out-Protokollrotation

1. Einführung in das Logrotate-Tool

Logrotate ist ein Tool zur Verwaltung von Protokolldateien. Es ist ein Protokollschneidetool, das standardmäßig in Linux enthalten ist. Wird zum Rotieren, Komprimieren und Löschen alter Dateien sowie zum Erstellen neuer Protokolldateien verwendet. Wir können Protokolldateien nach Größe, Anzahl der Tage usw. auslagern, um die Protokolldateiverwaltung zu vereinfachen. Dies geschieht normalerweise über geplante Cron-Aufgaben, sodass das Protokollschneiden nach Stunden, Tagen usw. aufgeteilt werden kann.

2. Logrotate-Betriebsmechanismus

Das System führt logrotate regelmäßig aus, normalerweise einmal täglich. So wird das System im Alltag umgesetzt. crontab führt das Skript täglich in regelmäßigen Abständen im Verzeichnis /etc/cron.daily aus. In diesem Verzeichnis befindet sich eine Datei namens logrotate.

[root@test01 ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

EXITVALUE=$?

wenn [ $EXITVALUE != 0 ]; dann

  /usr/bin/logger -t logrotate "ALERT wurde mit [$EXITVALUE] abnormal beendet"
fi
Ausfahrt 0

Beim tatsächlichen Ausführen ruft Logrotate die Konfigurationsdatei /etc/logrotate.conf auf.

3. Zusammensetzung von Logrotate

/usr/sbin/logrotate #Programmspeicherort;

/etc/cron.daily/logrotate #Standardmäßig führt Cron logrotate einmal täglich aus;

/etc/logrotate.conf #Globale Konfigurationsdatei;

/etc/logrotate.d/ #Verwenden Sie Ihr eigenes Konfigurationsdateispeicherverzeichnis, um die globale Konfiguration zu überschreiben;

Hinweis: logrotate.d ist ein Verzeichnis. Alle Dateien in diesem Verzeichnis werden zur Ausführung automatisch in /etc/logrotate.conf eingelesen. Wenn außerdem einige Details in den Dateien in /etc/logrotate.d/ nicht festgelegt sind, werden die Einstellungen in der Datei /etc/logrotate.conf als Standardwerte verwendet.

4. Logrotate-Befehlsformat

logrotate [OPTION...] <Konfigurationsdatei>
-d, --debug: Debug-Modus, testet die Konfigurationsdatei auf Fehler.
-f, --force: Erzwinge Dump-Datei.
-m, --mail=Befehl: Nach dem Komprimieren der Protokolle diese an das angegebene Postfach senden.
-s, --state=Statusdatei: Verwenden Sie die angegebene Statusdatei.
-v, --verbose: Zeigt den Dump-Prozess an.

Beispiel: Sie möchten die Rotation von Protokolldateien erzwingen, ohne darauf zu warten, dass logrotate dies tut.

[root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat #Ich verwende es zum Testen. Hinweis: CentOS7-Befehle befinden sich in /usr/sbin/.

5. Beschreibung allgemeiner Konfigurationsparameter

Das Wichtigste für die Implementierung der Logrotate-Funktion sind ihre Konfigurationsparameter

Im Folgenden sind die am häufigsten verwendeten Konfigurationsparameter aufgeführt:

Kompresse

Aktiviert die Komprimierung, die sich nach der Rotation auf die alten Logs bezieht. Hier wird standardmäßig die gzip-Komprimierung verwendet.

täglich

Tägliche Rotation

Datumext

Aktuelles Datum als Benennungsformat verwenden

Datumsformat .%s

Wird mit dateext verwendet, erscheint sofort in der nächsten Zeile, definiert den Dateinamen, nachdem die Datei ausgeschnitten wurde, muss mit dateext verwendet werden, unterstützt nur %Y %m %d %s diese vier Parameter

wennleer

Rotieren Sie die Protokolldatei, auch wenn sie leer ist

mail

Senden Sie die rotierten Dateien an die angegebene E-Mail-Adresse

kopieren und abschneiden

Wird für Protokolldateien verwendet, die noch geöffnet sind. Sichern und kürzen Sie das aktuelle Protokoll. Bei dieser Methode wird zuerst kopiert und dann gelöscht. Zwischen dem Kopieren und Löschen besteht ein Zeitunterschied, und einige Protokolldaten können verloren gehen.

monatlich

Einmal im Monat rotieren

keine Komprimierung

Wenn die Komprimierung in logrotate.conf aktiviert ist, sind hier die Parameter zum Deaktivieren der Komprimierung:

keine Mail

Senden Sie keine E-Mails an Adressen

Benachrichtigungleer

Wenn der Stamm leer ist, wird er nicht gedreht (d. h. der leere Stamm wird nicht geschnitten).

olddir + Verzeichnis

Die rotierten Protokolldateien werden im angegebenen Verzeichnis abgelegt und müssen sich im selben Dateisystem wie die aktuellen Protokolldateien befinden.

drehen + mal

Die maximale Anzahl, mit der die vorherigen Daten in der Rotation beibehalten werden. Die Daten, die diese Anzahl überschreiten, werden gelöscht oder per E-Mail gesendet. Wenn der Wert auf 0 gesetzt ist, werden keine Daten gespeichert.

Größe Größe

Wenn das Protokoll eine bestimmte Größe erreicht, beginnt die Rotation

wöchentlich

Wenn der aktuelle Wochentag vor dem Wochentag der letzten Rotation liegt oder mehr als eine Woche vergangen ist, wird eine Rotation durchgeführt. Die Rotation wird normalerweise am ersten Tag jeder Woche durchgeführt. Wenn logrotate nicht täglich ausgeführt wird, wird es bei der ersten Gelegenheit rotiert.

jährlich

Wenn das aktuelle Jahr nicht mit dem letzten Rotationsjahr übereinstimmt, wird das Protokoll rotiert.

Vermisstok

Wenn das Protokoll verloren geht, wird kein Fehler gemeldet und das nächste Protokoll wird gescrollt

6. Installieren und konfigurieren Sie Logrotate

#yum-Installation

[root@test01 ~]# yum -y install logrotate

#Auf der Maschine ist Tomcat bereits installiert. Konfigurieren Sie nun die Konfigurationsdatei zum Ausschneiden von Tomcat-Protokollen.

[root@test01 ~]# vim /etc/logrotate.d/tomcat

Hinweis: Die Konfigurationsdatei für logrotate ist /etc/logrotate.conf und muss normalerweise nicht geändert werden.

Die Einstellungen für die Protokolldateirotation befinden sich in separaten Konfigurationsdateien, die im Verzeichnis /etc/logrotate.d/ abgelegt werden.

[root@test01 ~]# mkdir -p /var/log/tomcat/oldlog

[root@test01 ~]# cat /etc/logrotate.d/tomcat

/usr/local/tomcat8/logs/catalina.out { #Zu löschende Protokollpfade. Wenn es mehrere gibt, trennen Sie diese durch Leerzeichen. notifempty #Wenn das Protokoll leer ist, wird es nicht rotiert (d. h., leere Protokolle werden nicht gelöscht).

  rotate 5000 #Behalte die vorherigen Daten während der Rotation maximal 5000 Mal bei missingok #Wenn ein Protokoll verloren geht, fahre mit dem Rollen des nächsten Protokolls fort, ohne einen Fehler zu melden compress #Aktiviere die Komprimierung, die sich nach der Rotation auf das alte Protokoll bezieht. Die Standardkomprimierung ist hier gzip dateext #Verwende das aktuelle Datum als Benennungsformat dateformat .%Y%m%d-%H dot #Verwende es mit dateext, erscheint sofort in der nächsten Zeile, definiert den Dateinamen nach dem Ausschneiden der Datei, muss mit dateext verwendet werden, unterstützt nur %Y %m %d %s

  olddir /var/log/tomcat/oldlog #Die Protokolldateien werden nach der Rotation im angegebenen Verzeichnis abgelegt}

Hinweis: Ich habe in dieser Konfiguration nicht festgelegt, wie oft geschnitten werden soll, aber es wird einmal am Tag geschnitten, denn wenn die Datei /etc/logrotate.d/tomcat nicht konfiguriert ist, wird standardmäßig jeden Tag die Datei /etc/cron.daily/logrotate ausgeführt und diese Datei wird einmal am Tag geschnitten.

#Erzwingen Sie die Ausführung des Schneidens und prüfen Sie, ob ein Protokoll in /var/log/tomcat/oldlog vorhanden ist

[root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat

Konfigurationsdatei /etc/logrotate.d/tomcat wird gelesen

olddir ist jetzt /var/log/tomcat/oldlog

Zuweisen einer Hash-Tabelle für die Statusdatei, Größe 15360 B

Handhabung von 1 Protokollen

Rotationsmuster: /usr/local/tomcat8/logs/catalina.out über die Befehlszeile erzwungen (5000 Rotationen)

olddir ist /var/log/tomcat/oldlog, leere Logdateien werden nicht rotiert, alte Logs werden entfernt

berücksichtigt Protokoll /usr/local/tomcat8/logs/catalina.out

 Protokoll muss gedreht werden

rotierendes Protokoll /usr/local/tomcat8/logs/catalina.out, log->rotateCount ist 5000

Konvertiert '.%Y%m%d-%H点' -> '.%Y%m%d-%H点'

dateext-Suffix „.20181226-15“

Glob-Muster '.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]Punkt'

Glob konnte alte rotierte Protokolle nicht finden

fscreate-Kontext auf unconfined_u:object_r:usr_t:s0 gesetzt

Umbenennen von /usr/local/tomcat8/logs/catalina.out in /var/log/tomcat/oldlog/catalina.out.20181226-15:00. Komprimieren des Protokolls mit: /bin/gzip.

Standard-Erstellungskontext auf unconfined_u:object_r:usr_t:s0 setzen

Standard-Erstellungskontext festlegen

# Schnittergebnisse anzeigen

#Löschen Sie die zuvor ausgeschnittene Datei, da die Datei beim erneuten Ausschneiden dieselbe ist (catalina.out.20181226-15.gz), sodass das Ausschneiden nicht erfolgreich sein wird.

[root@test01 ~]# rm -rf /var/log/tomcat/oldlog/catalina.out.20181226-15点.gz 
[root@test01 ~]# ls /var/log/tomcat/oldlog/
[root@test01 ~]

#Legen Sie eine geplante Aufgabe fest, die einmal pro Minute ausschneidet (Hinweis: Das Protokoll muss Inhalt haben, da die zuvor definierte leere Protokolldatei nicht ausgeschnitten wird).

[root@test01 ~]# crontab –e
*/1 * * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >>/var/log/tomcat/oldlog/cutting.log

# Alle zwei Stunden schneiden

[root@test02 ~]# crontab -l
0 */2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /root/chenjiaxin/cutting.log

#Ergebnisse des zeitgesteuerten Schneidens anzeigen

Die obige Einstellung, einmal pro Minute zu schneiden, dient natürlich dazu, dass der Effekt im Experiment möglichst schnell sichtbar wird. Tatsächlich ist es notwendig, die Häufigkeit des Holzfällens entsprechend den Anforderungen des Unternehmens festzulegen!

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Linux verwendet logrotate, um Protokolldateien zu kürzen
  • Detaillierte Einführung in die Tomcat-Protokollrotation (logrotate)
  • Zusammenfassung des Logrotate-Protokollabfragevorgangs unter Linux

<<:  Grundlegendes Installationstutorial zum Dekomprimieren von MySQL-Paketen

>>:  Detaillierte Schritte zum Konfigurieren der MySQL-Remoteverbindung unter Alibaba Cloud

Artikel empfehlen

Einfaches Beispiel für den Grenzwertparameter der MySQL-Paging

Zwei Parameter der MySQL-Paging Wählen Sie * aus ...

Detaillierte Erläuterung der gespeicherten Prozeduren und Funktionen von MySQL

1 Gespeicherte Prozedur 1.1 Was ist eine gespeich...

MySQL-Tabellenfeld Zeiteinstellung Standardwert

Anwendungsszenario In der Datentabelle muss die A...

Verwendung von MySQL-Triggern

Trigger können dazu führen, dass vor oder nach de...

Detaillierte Zusammenfassung der Übermittlungsmethoden für Webformulare

Sehen wir uns zunächst verschiedene Möglichkeiten...

Verwenden Sie reines CSS, um einen Switch-Effekt zu erzielen

Zuerst ist die Idee Um diesen Effekt zu erzielen,...

So entfernen Sie Wagenrücklaufzeichen aus Text in Linux

Machen Sie sich keine Sorgen, wenn Sie das Wagenr...

5 Punkte, auf die Sie beim Erstellen einer Webseite achten sollten

1. Farbabstimmungsproblem <br />Eine Webseit...

So verwenden Sie den CocosCreator-Objektpool

Inhaltsverzeichnis Vorwort: Spezifische Operation...