Ich habe ein Verzeichnis mit vielen Protokolldateien, die ich täglich wechseln möchte. Aus organisatorischen Gründen möchte ich in der Lage sein, die gedrehten Protokolle in ein anderes Verzeichnis (oder Unterverzeichnis) zu verschieben, das nach Datum benannt ist, wobei die letzte Protokollwoche beibehalten wird.
Ich kann logrotate verwenden, um das meiste davon zu erreichen, indem ich die Dateien an Ort und Stelle rotiere oder sie mithilfe der olddir
Direktive sogar in ein anderes Verzeichnis verschiebe, aber ich habe Probleme, eine Lösung zu finden, um einzelne Unterverzeichnisse pro Umdrehung zu erstellen. Wie kann ich das erreichen?:
Logs to rotate: /var/log/example/*
Desired target directories (keeping a week):
/var/log/example/20121006/*
[ ... ]
/var/log/example/20121012/*
postrotate
dies den Trick tun wird. Das einzige, was ich hinzufügen muss, ist das Löschen der alten Verzeichnisse, die über einer bestimmten Anzahl oder älter als ein bestimmtes Datum liegen.find | xargs
Befehl sollte alle unmittelbaren Unterverzeichnisse löschen,/var/log/example
wenn sie zuletzt vor mehr als 7 Tagen geändert wurden.Sie haben eine
olddir
Direktive, die Sie in der Konfigurationsdatei verwenden können.Aus der Dokumentation:
Referenz : https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html
quelle