Jak Logrotate obsługuje otwarte pliki? Czy Logrotate może obracać pliki otwarte przez proces?
Jak Logrotate obsługuje otwarte pliki? Czy Logrotate może obracać pliki otwarte przez proces?
Odpowiedzi:
Do tych aplikacji, które nie akceptują sygnałów z logrotate, jak opisał Rory, używam kilku metod.
Decyzja o wyborze zależy od wielkości plików dziennika i konieczności bezproblemowego logowania. To będzie analiza ryzyka z twojej strony. Jednak, aby dać przykład, używam restartu po rotacji w niektórych logach, w których powinienem używać copytruncate. Jednak pliki często zawierają kilka koncertów, a kopiowanie może zająć wystarczająco dużo czasu, aby lepiej było stracić sekundę lub dwie każdej nocy.
Wygląda na to, że chciałbym mieć następujące, ale nadal zainteresowany czyjąkolwiek wiedzą na ten temat:
copytruncate
Truncate the original log file to zero size in place after cre‐
ating a copy, instead of moving the old log file and optionally
creating a new one.
logrotate wyśle prawidłowy sygnał do procesu, informując go o ponownym otwarciu plików dziennika. Działa po wyjęciu z pudełka dla rzeczy takich jak apache lub mysql.
Możesz to zobaczyć w skrypcie postrotate dla apache. Jeśli masz własnego demona i chcesz, aby logrotate z nim pracował, upewnij się, że nasłuchuje określonego sygnału i ponownie otwiera pliki dziennika.
Jeśli nie możesz zmienić programu, możesz sprawdzić, czy demon ma sposób na automatyczne opróżnianie dzienników. Lub dodaj prerotate, który zatrzymuje serwer i postrotate, który uruchamia go ponownie.