Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


10.8.3 Log-Rotation

Protokolldateien wie die in /var/log neigen dazu, bis ins Unendliche zu wachsen, deshalb ist es eine gute Idee, sie von Zeit zu Zeit zu rotieren — d.h. ihren Inhalt in separaten Dateien zu archivieren, welche optional auch komprimiert werden. Das Modul (gnu services admin) stellt eine Schnittstelle zu GNU Rot[t]log bereit, einem Werkzeug, um Protokolldateien („Log“-Dateien) zu rotieren (siehe GNU Rot[t]log Manual).

Dieser Dienst ist Teil der %base-services und daher standardmäßig mit seinen Vorgabeeinstellungen für übliche Log-Dateien aktiv. Das Beispiel unten zeigt, wie Sie ihn um eine weitere rotation erweitern können, wenn dies nötig wird (normalerweise kümmern sich darum schon die Dienste, die die Log-Dateien erzeugen):

(use-modules (guix) (gnu))
(use-service-modules admin)

(define my-log-files
  ;; Log-Dateien, die ich rotieren lassen will.
  '("/var/log/irgendein.log" "/var/log/noch-ein.log"))

(operating-system
  ;; …
  (services (cons (simple-service 'meinen-kram-rotieren
                                  rottlog-service-type
                                  (list (log-rotation
                                         (frequency 'daily)
                                         (files my-log-files))))
                  %base-services)))
Scheme-Variable: rottlog-service-type

Dies ist der Typ des Rottlog-Dienstes, dessen Wert ein rottlog-configuration-Objekt ist.

Andere Dienste können diesen Dienst um neue log-rotation-Objekte erweitern (siehe unten), wodurch die Auswahl an zu rotierenden Dateien ausgeweitet wird.

Dieser Diensttyp kann mcron-Aufträge definieren (siehe Geplante Auftragsausführung), die den rottlog-Dienst ausführen.

Datentyp: rottlog-configuration

Datentyp, der die Konfiguration von rottlog repräsentiert.

rottlog (Vorgabe: rottlog)

Das Rottlog-Paket, das verwendet werden soll.

rc-file (Vorgabe: (file-append rottlog "/etc/rc"))

Die zu benutzende Rottlog-Konfigurationsdatei (siehe Mandatory RC Variables in GNU Rot[t]log Manual).

rotations (Vorgabe: %default-rotations)

Eine Liste von log-rotation-Objekten, wie wir sie weiter unten definieren.

jobs

Dies ist eine Liste von G-Ausdrücken. Jeder G-Ausdruck darin entspricht einer mcron-Auftragsspezifikation (siehe Geplante Auftragsausführung).

Datentyp: log-rotation

Datentyp, der die Rotation einer Gruppe von Protokolldateien repräsentiert.

Um ein Beispiel aus dem Rottlog-Handbuch (siehe Period Related File Examples in GNU Rot[t]log Manual) aufzugreifen: Eine Log-Rotation kann auf folgende Art definiert werden:

(log-rotation
  (frequency 'daily) ;täglich
  (files '("/var/log/apache/*"))
  (options '("storedir apache-archives"
             "rotate 6"
             "notifempty"
             "nocompress")))

Die Liste der Felder ist folgendermaßen aufgebaut:

frequency (Vorgabe: 'weekly)

Die Häufigkeit der Log-Rotation, dargestellt als englischsprachiges Symbol.

files

Die Liste der Dateien oder Glob-Muster für Dateien, die rotiert werden sollen.

options (Vorgabe: '())

Die Liste der Rottlog-Optionen für diese Rotation (siehe Configuration parameters in GNU Rot[t]lg Manual).

post-rotate (Vorgabe: #f)

Entweder #f oder ein G-Ausdruck, der nach Abschluss der Rotation einmal ausgeführt wird.

Scheme-Variable: %default-rotations

Gibt wöchentliche Rotationen der %rotated-files und von /var/log/guix-daemon.log an.

Scheme-Variable: %rotated-files

Die Liste der von Syslog verwalteten Dateien, die rotiert werden sollen. Vorgegeben ist '("/var/log/messages" "/var/log/secure" "/var/log/debug" "/var/log/maillog").


Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]