Czy można wziąć logrotate
pod uwagę pliki dziennika w katalogu i wszystkich jego podkatalogach? (tzn. bez wyraźnego wyświetlania podkatalogów).
62
Jak głęboko sięgają twoje podkatalogi?
/var/log/basedir/*.log /var/log/basedir/*/*.log {
daily
rotate 5
}
Obróci wszystkie pliki .log w pliku basedir /, a także wszystkie pliki .log w dowolnym bezpośrednim potomku pliku basedir. Jeśli musisz zejść o 1 poziom głębiej, po prostu dodaj kolejny, /var/log/basedir/*/*/*.log
dopóki nie pokryjesz każdego poziomu.
Można to przetestować, używając osobnego pliku konfiguracyjnego logrotate, który zawiera ograniczenie, które nie zostanie spełnione (duży rozmiar minimalny), a następnie uruchomione obracanie dziennika w trybie pełnym
logrotate -d testconfig.conf
-d wyświetli listę każdego pliku dziennika, który zamierza obrócić.
-d
to, że faktycznie wprowadza logrotate w tryb pracy na sucho (tzn. Nic nie zmienia).-f
opcja mówi logrotate do „run siły”. puste słowo na końcu polecenia to plik konfiguracyjny, który należy użyć zamiast domyślnego.logrotate -f /some/config
oznacza to, że uruchom z tym plikiem konfiguracyjnym i zawsze uruchamiaj, nawet jeśli plik konfiguracyjny mówi, że jeszcze nie czas na uruchomienie. Moim niedoświadczonym oczom i mojemu poprzednikowi, który wykonał z nim cron, wydawało się, że-f
to tylko określenie pliku konfiguracyjnego. Całkiem mylące.W moim przypadku głębokość podkatalogów może się zmienić bez ostrzeżenia, dlatego skonfigurowałem skrypt bash, aby znaleźć wszystkie podkatalogi i utworzyć pozycję config dla każdego katalogu.
Ważne jest również dla mnie zachowanie struktury podkatalogów po rotacji, czego wydawały się nie robić symbole wieloznaczne (tj. Odpowiedź @ DanR). Jeśli wykonujesz codzienne zmiany dzienników, możesz umieścić ten skrypt w codziennej pracy crona.
Jak sugerował @DanR, przetestuj za pomocą
logrotate -d
źródło
To stary wątek, ale możesz wykonać następujące czynności:
Te dwie gwiazdki będą pasować do zera lub więcej katalogów. Należy jednak zachować ostrożność podczas definiowania plików dziennika, które mają być obracane, ponieważ można obracać pliki, które zostały już obrócone. Przytoczę tutaj instrukcję logrotate.
źródło
globstar
przed uruchomieniem logrotate. Umożliwi to bashshopt -s globstar
.