GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Logrotate zum Verwalten von Protokolldateien

Logrotate ist eine in den meisten Linux-Distributionen vorinstallierte Software, mit der Sie die langfristige Speicherung und Organisation von Protokolldateien verwalten können.

Die Anwendungen im System zeichnen oft ein Protokoll über Disc-Operationen oder Probleme auf. Wenn diese Dateien nicht regelmäßig gelöscht werden, können sie an Größe zunehmen, die Festplatte füllen und Fehlfunktionen verursachen.

Logrotate ist die am weitesten verbreitete Lösung, um Protokolldateien regelmäßig zu überprüfen und ihre Rotation, Komprimierung und Löschung automatisch zu verwalten, wenn eine bestimmte Größe und/oder ein bestimmtes Alter überschritten wird.

Grundlegende Konfigurationen

Logrotate ermöglicht die Definition einiger grundlegender Parameter, die von allen nachfolgenden Konfigurationen der Datei im Pfad /etc/logrotate.conf verwendet werden:

# Set a weekly rotation

weekly


# Set the number of rotations to save

rotate 4
              

# make new log file

create
              

# Include all configurations files

include /etc/logrotate.d

In diesem Auszug aus logrotate.conf wird neben der Anwendung aller oben beschriebenen Parameter auch empfohlen, alle im Verzeichnis /etc/logrotate.d vorhandenen Konfigurationen zu lesen. Auf diese Weise können Sie jede Konfiguration nach Anwendung und/oder Kontext aufteilen.

Logrotate-Konfigurationen definieren einen Regelsatz für 1 oder mehrere Dateien:

[FILE] [FILE?] [FILE?] {

    [SETTINGS]

}

Ein klassisches Beispiel ist die Konfiguration von /var/log/messages:

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

Im obigen Beispiel wird nur die Nachrichtendatei berücksichtigt. . und seine Rotation wird jede Woche eingestellt, p auf maximal 5. Daher sind am Ende der fünften Rotation die Protokolldateien:

-rw-r----- 1 root  adm 1215 Jul 29 06:47 messages

-rw-r----- 1 root  adm 3895 Jul 28 06:49 messages.1

-rw-r----- 1 root  adm 454 Jul 21 06:37 messages.2.gz

-rw-r----- 1 root  adm 506 Jul 15 06:40 messages.3.gz

-rw-r----- 1 root  adm 456 Jul 7 06:41 messages.4.gz

Einige der wichtigsten Einstellungen sind:

  • täglich, monatlich, wöchentlich, jährlich:Gibt an, wie oft die Protokolldatei rotiert werden soll

  • compress, nocompress:ob alte Dateirotationen komprimiert werden sollen oder nicht

  • maxage:Nach wie vielen Tagen werden die alten Rotationen gelöscht

  • Größe:Legt die Drehung nur fest, wenn die angegebenen Dateien größer als die angegebene Größe sind. Suffixe können verwendet werden, um das Größenformat anzugeben (zB „k“ für Kilobyte, „M“ für Megabyte)

  • rotate:Anzahl der rotierten Protokolle, die gespeichert werden müssen, bevor sie dauerhaft entfernt werden. Wenn der Wert 0 ist, werden die Protokolldateien gelöscht, ohne rotiert zu werden.

Falls Sie dieselben Regeln für mehrere Dateien festlegen möchten, können Sie mehrere Pfade anhängen, indem Sie sie durch ein Komma trennen. Zum Beispiel:

/var/log/custom_log, /var/log/alternative_log_file, /var/log/another_log {
                 

      …
                 

}

Diese Konfiguration wird für die custom_log-Datei, alternative_log_file und another_log verwendet.

Alternativ können Sie Dateimasken verwenden wie:

/var/custom/logs/*, /var/log/custom_log {
                 

      # This configuration will rotate all the files in the directory. 

      # /var/custom/logs/* e il file /var/log/custom_log
                 

      ...

}

Verwendung der dateext-Einstellung

Die dateext-Einstellung ermöglicht es Ihnen, das Rotationsdatum an den Dateinamen anzufügen, damit Daten der Protokolle leicht erkannt werden können .

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

Die oben angegebene Konfiguration archiviert die Datei custom.log, sobald sie 100 MB erreicht, bis zu maximal 3 Mal oder nach 100 Tagen. Durch die Komprimierungsoption wird die archivierte Datei auch im gzip-Format komprimiert.

Nach der Rotation haben die Dateinamen das unten gezeigte Rotationsdatum:

# ls /var/log

-rw-r--r--  1 user user 8980 2019-06-09 22:10 custom.log-20180609.gz

-rwxrwxrwx 1 user user    0 2019-06-09 22:11 custom.log

E-Mail-Protokolle

Logrotate ermöglicht es Ihnen, benutzerdefinierte Skripte auszuführen, wenn bestimmte Ereignisse eintreten, z. B. nach jeder Protokollrotation, indem Sie die Schlüsselwörter postrotate / endscript verwenden.

Eine mögliche Verwendung könnte darin bestehen, die Protokolle nach Abschluss der Rotation per E-Mail zu versenden. Um fortzufahren, erstellen Sie zunächst ein Skript, um die Dateien an Ihre E-Mail-Adresse zu senden:

#!/bin/bash
                 

# Get all logs

tar -cvf /tmp/logpack.tar /var/log/messages*
                 

# Send logs as attachment 

echo "Log" | mail -s "log" [email protected] -A /tmp/logpack.tar

Speichern Sie die obige Datei in Ihrem Home-Verzeichnis, zum Beispiel /home/map.com Benutzername_s//endend.sh, und stellen Sie sicher, dass Sie die erforderlichen Berechtigungen aktivieren durch:

# sudo chmod u+x /home/user/sendlog.sh

Bearbeiten Sie nun die Logrotate-Konfigurationsdatei wie folgt:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Speichern Sie die Konfiguration, um die Änderungen zu übernehmen.

Sobald Sie fertig sind, erhalten Sie bei jeder Log-Rotation eine E-Mail mit dem oben beschriebenen Log-Archiv.


Linux
  1. So installieren und verwenden Sie logrotate zum Verwalten von Protokolldateien in Ubuntu 18.04 LTS

  2. So verwalten Sie Linux-Dateifunktionen

  3. So verwalten Sie Protokolldateien mit Logrotate unter Linux

  4. So verwenden Sie rsyslog zum Erstellen eines Linux-Protokollaggregationsservers

  5. So verwenden Sie Logrotate zum Verwalten von Protokollen auf Ubuntu

So installieren Sie Logrotate unter Ubuntu 16.04 LTS

Wie verwende ich den Dateimanager von cPanel?

Wie verwende ich gzip unter Linux?

So verwenden Sie Linux zum Wiederherstellen gelöschter Dateien

Ubuntu-Tipps:Anzeigen von Systemprotokolldateien in der GUI

So komprimieren Sie eine Datei unter Linux