Tak, jest właściwy sposób: w ogóle nie czyścisz logów. Ci obracać je. Rotacja polega na przełączeniu wyjścia dziennika do nowego pliku o tej samej nazwie, z poprzednimi N plikami dziennika przechowywanymi pod zestawem N powiązanych nazw plików.
To, jak obraca się dzienniki, zależy od tego, jak je zapisujesz. Jest to często pomijany punkt. Niektóre odpowiedzi tutaj dotykają go przynajmniej, wspominając, że niektóre programy rejestrujące przechowują otwarty deskryptor pliku dziennika, więc samo usunięcie pliku nie zwolni miejsca, a nawet przełączy dane wyjściowe na nowy plik dziennika.
Jeśli na przykład program zapisujący plik dziennika pochodzi multilog
z daemontools
paczki , nie robisz nic, aby w ogóle obracać dzienniki - bez ręcznych skryptów, bez cron
zadań. Po prostu powiedz, multilog
że dane wyjściowe dziennika znajdują się w katalogu, a on sam utrzyma automatycznie obrócony i ograniczony rozmiarami zestaw N plików dziennika w tym katalogu.
Jeśli program zapisujący pliki dziennika pochodzi svlogd
z runit
pakietu , w innym przykładzie, to samo dotyczy. W ogóle nie robisz nic oprócz wskazywania narzędzia w katalogu. Sama utrzyma automatycznie obrócony i ograniczony rozmiarami zestaw N plików dziennika w tym katalogu.
Jeśli używasz rsyslog
do zapisywania plików dziennika, program rejestrujący może zostać zatrzymany po osiągnięciu przez plik dziennika określonego rozmiaru i uruchomieniu skryptu . Musisz napisać treść skryptu, aby faktycznie zmienić nazwę pliku dziennika i usunąć stare pliki dziennika na podstawie ograniczeń dotyczących całkowitego rozmiaru, ale przynajmniej program rejestrujący zamknął plik i wstrzymał zapisywanie dziennika podczas tego procesu.
Stary syslogd
sposób obracania dzienników, wciąż oczekiwany przez programy do rejestrowania, takie jak syslog-ng, i którego przykładem są narzędzia, takie jak logrotate
wspomniane djangofan
w innej odpowiedzi tutaj, jest nieco bardziej przypadkowy. Jeden uruchamia cron
zadanie, które okresowo zmienia nazwy plików dziennika i ponownie uruchamia demona rejestrującego (używając dowolnego nadzorcy demonów, na którym działa). Problem polega na tym, że nie wymusza to ograniczenia rozmiaru ogólnego. W wolnych tygodniach można uzyskać N bardzo małych dziennych plików dziennika, podczas gdy w pracowite dni można uzyskać 1 bardzo duży plik dziennika, który znacznie przekracza limit rozmiaru.
Dlatego później i lepsze narzędzia, jak multilog
i svlogd
posiada opcje konfiguracyjne rozmiar plików i faktycznie sprawdzić plik dziennika wielkości siebie, oczywiście. Świat nauczył się, że odpytywanie dzienników zgodnie z harmonogramem z cron
zadaniami, a nawet logrotate
demonem, pozostawia okna, aby rozmiar był niepoprawny, oraz że właściwe miejsce do przeprowadzania tych kontroli i tak rygorystycznie egzekwuje ograniczenia wielkości zdefiniowane przez administratora, aby pliki dziennika nigdy nie połykają partycji, na której się znajdują, są w programie, który faktycznie zapisuje pliki na pierwszym miejscu.