Ist es möglich, logrotate
Protokolldateien in einem Verzeichnis und all seinen Unterverzeichnissen zu berücksichtigen? (dh ohne explizite Auflistung der Unterverzeichnisse.)
62
Wie tief gehen Ihre Unterverzeichnisse?
/var/log/basedir/*.log /var/log/basedir/*/*.log {
daily
rotate 5
}
Rotiert alle .log- Dateien in basedir / sowie alle .log- Dateien in einem direkten untergeordneten Element von basedir. Wenn Sie auch eine Stufe tiefer gehen müssen, fügen /var/log/basedir/*/*/*.log
Sie einfach eine weitere hinzu, bis jede Stufe abgedeckt ist.
Dies kann getestet werden, indem Sie eine separate logrotate-Konfigurationsdatei verwenden, die eine Einschränkung enthält, die nicht erfüllt wird (eine hohe Mindestgröße), und dann log rotieren Sie sich im ausführlichen Modus
logrotate -d testconfig.conf
Das Flag -d listet jede Protokolldatei auf, die gedreht werden soll.
-d
Logrotate in den Trockenlaufmodus versetzt (dh es ändert sich eigentlich nichts).-f
Option weist logrotate an, "Lauf erzwingen". Ein leeres Wort am Ende des Befehls ist eine Konfigurationsdatei, die anstelle der Standarddatei verwendet wird. Daslogrotate -f /some/config
bedeutet, dass Sie mit dieser Konfigurationsdatei ausgeführt werden und immer ausgeführt werden, selbst wenn die Konfigurationsdatei angibt, dass es noch nicht an der Zeit ist, sie auszuführen. Für meine ungeübten Augen und für meinen Vorgänger, der damit einen Cronjob gemacht hat, schien es,-f
als würde er nur die Konfigurationsdatei spezifizieren. Ziemlich verwirrend.In meinem Fall kann sich die Tiefe der Unterverzeichnisse ohne Vorwarnung ändern. Daher habe ich ein Bash-Skript eingerichtet, um alle Unterverzeichnisse zu finden und einen Konfigurationseintrag für jedes Verzeichnis zu erstellen.
Für mich ist es auch wichtig, die Struktur der Unterverzeichnisse nach der Rotation beizubehalten, was Wildcards (dh die Antwort von @ DanR) anscheinend nicht taten. Wenn Sie tägliche Protokollrotationen durchführen, können Sie dieses Skript in einen täglichen Cron-Job einfügen.
Testen Sie wie von @DanR vorgeschlagen mit
logrotate -d
quelle
Es ist ein alter Thread, aber Sie können Folgendes tun:
Diese beiden Sterne stimmen mit keinem oder mehreren Verzeichnissen überein. Sie müssen jedoch vorsichtig sein, wie Sie die zu drehenden Protokolldateien definieren, da Sie bereits gedrehte Dateien drehen können. Ich werde hier das Handbuch von logrotate zitieren.
quelle
globstar
bevor Sie logrotate ausführen. Dadurch wird es für die Bash aktiviertshopt -s globstar
.