Wie konfiguriere ich logrotate, um meine Protokolldateien nach der Drehung nicht zu löschen?


24

Gibt es einen Weg, dies zu tun?


Können Sie uns sagen, warum Sie dies tun möchten? Vielleicht gibt es andere Möglichkeiten ...
chmeee

In meinem Fall wäre es schön, große alte Protokolle auf einen externen Speicherplatz herunterzuladen und neue auf dem Server zu behalten. Also brauche ich einen einfachen Holzspalter.
Sekrett

2
Mein Anwendungsfall für diese Konfiguration ist: Ich möchte mein Protokoll für immer aufbewahren, da ich es möglicherweise für Überwachungszwecke benötige, ABER ich möchte, dass meine Dateien gedreht werden, damit das aktuelle Protokoll nicht zu groß wird und die gedrehten nicht zu groß werden komprimiert - andernfalls ist das Sichern der Protokolle auf einem externen Server zu schwierig und das Überprüfen der Dateien zu langsam.
Rudolf Mayer

Antworten:


32

Ändern Sie in Ihrer Datei logrotate.conf (oder der entsprechenden Datei logrotate.d) die Zeile mit der Aufschrift "

rotate 10

(Ihre Nummer kann abweichen) zu einer größeren Nummer. Das wird es sagen, so viele Tage Protokolle zu halten. Sie können es 36500 machen, was Ihnen 100 Jahre dauern würde.


6
Wenn ich das auf einem Himbeer-Pi (Himbeer) machte, fror es jede Nacht ein. Einmal konnte ich Prozesse ausführen und Dateien über die serielle Konsole öffnen. Dabei stellte ich fest, dass versucht wurde, 100000 nicht vorhandene Dateien umzubenennen. Also hüte dich davor. Leider habe ich keine detaillierteren Informationen
Christian

0

Ich habe danach gesucht, um meine Datenbank-Backups täglich, wöchentlich und monatlich zu wechseln. Daher drehe ich die Datei täglich, behalte sie jedoch für die wöchentliche Drehung und für die jährliche Drehung.

Verwenden Sie die Kopieroption. Aus dem Handbuch:

copy

copy Erstellen Sie eine Kopie der Protokolldatei, aber ändern Sie das Original überhaupt nicht. Diese Option kann zum Beispiel verwendet werden, um eine Momentaufnahme der aktuellen Protokolldatei zu erstellen, oder wenn ein anderes Dienstprogramm die Datei abschneiden oder analysieren muss. Wenn diese Option verwendet wird, hat die Option create keine Auswirkung, da die alte Protokolldatei an Ort und Stelle bleibt.


Dies entspricht dem folgenden Kommentar ( serverfault.com/a/50186/275485 ) und gibt keine korrekte Antwort. Kopie bedeutet nicht, dass Ihre alten Dateien, die gedreht wurden, nicht gelöscht werden.
Rudolf Mayer

-3

Stellt den Punkt beiseite, bei dem die Rotation gelöscht werden muss ... ;-)

Es sieht so aus, als ob Sie einfach das Wort 'copy' zur entsprechenden Datei hinzufügen können (wahrscheinlich in /etc/logrotate.d). Ein Apache2-Logrotate-Skript würde beispielsweise so aussehen:

/var/log/apache2/*.log {
    wöchentlich
    missingok
    52 drehen
    komprimieren
    delaycompress
    notifempty
    Kopieren
    SharedScripts
    nachrotieren
        if [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; dann
            /etc/init.d/apache2 reload> / dev / null
        fi
    Endskript
}

Versuchen Sie das und sehen Sie, ob es das tut, was Sie wollen.


2
Angenommen, er möchte, dass die Dateien "gedreht" werden, löscht aber nie die alten Dateien, dann ist dies nicht der Fall. Das Hinzufügen von "copy" zur Zeilengruppe config bedeutet, dass die ursprüngliche Datei für immer größer wird, aber letztendlich die älteren Kopien der Datei gelöscht werden. So wie ich es verstehe, ist "Kopieren" in erster Linie nützlich, wenn Sie erwarten, dass ein anderer Prozess das Original abschneidet / löscht.
Insyte

Genau das dachte ich, wonach er gefragt hat. Er fragte ausdrücklich nach einer Möglichkeit, "meine Protokolldateien nicht zu löschen", nicht nach einer Möglichkeit, "alte Archive meiner Protokolldateien nicht zu löschen". Ich schätze, ich sollte vor Fragen, die nur ein Thema und keinen Körper betreffen, vorsichtiger sein ;-)
Justin Ellison

2
Die Phrase "nach der Drehung" liefert einen Hinweis.
Bis auf weiteres angehalten.

4
Msgstr "Den Punkt beiseite legen, bei dem die Drehung das Löschen beinhaltet ..." Nicht unbedingt. Bei der Rotation müssen die alten Protokolle lediglich komprimiert und aufbewahrt werden. Dies scheint die Frage zu sein.
Reflexiv
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.