Gibt es einen Weg, dies zu tun?
Gibt es einen Weg, dies zu tun?
Antworten:
Ä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.
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.
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.