Jemand fragte mich nur, wie lange wir Protokolle für unsere Anwendung aufbewahren sollen, und meine Antwort lautete: "Bis die Festplatte voll ist", da es keinen Grund gibt, sie wegzuwerfen, außer dass der Speicherplatz knapp wird.
Standard-Logrotate möchte jedoch, dass wir einen bestimmten Zeitraum + Anzahl der Umdrehungen angeben. Gibt es etwas Ähnliches, das uns sagen lässt: "Täglich wechseln und so viel Geschichte behalten, wie Sie möchten, bis nur noch 5% Speicherplatz frei sind"?
Die Plattform ist Redhat Linux.
Antworten:
Sie können möglicherweise die Direktiven firstaction oder lastaction verwenden, um ein Shell-Skript aufzurufen, das auf freien Speicherplatz prüft, und dann die ältesten Dateien zu löschen.
Aktualisieren:
Hier ist ein Stackoverflow-Beitrag über die Art des Skripts, das Sie ausführen können:
/programming/7523059/remove-oldest-file-in-repository
quelle
logrotate selbst hat keine solche Option. Sie können ein Cron-Skript hinzufügen, das das älteste zu entfernende Protokoll findet, wenn der freie Speicherplatz unter Ihre Kriterien fällt. Sie können auch eine andere Validierung durchführen. Es ist jedoch keine gute Idee, die Festplatte ständig zu voll zu machen, da das System keine großen temporären Dateien erstellen kann und Anwendungsfehler verursachen kann.
quelle
Ich wollte nur darauf hinweisen, dass es Fälle gibt, in denen Ihre Protokolle nicht den gesamten verfügbaren Speicherplatz ausfüllen sollen. Ich habe mich mit mehreren Hosts mit Thin Provisioned / Var-Verzeichnissen befasst, und es war entscheidend, die Protokolle auf einer bestimmten Größe zu halten. Wir haben einen Crony-Job in Verbindung mit logrorate verwendet, um die Größe gering zu halten. Ähnliches könnte in Ihrer Umgebung verwendet werden, obwohl ein zentraler Protokollserver wie Splunk oder Syslog-ng wahrscheinlich die bessere Option wäre.
quelle
Wie von @cjc vorgeschlagen, können Sie firstaction verwenden. Siehe dieses Beispiel:
In diesem Beispiel haben Sie Dateien mit mehr als 1 GB aus der Partition / mnt / user entfernt , wenn der verwendete Speicherplatz der Partition mehr als 50% beträgt .
quelle