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 multilogz daemontoolspaczki , nie robisz nic, aby w ogóle obracać dzienniki - bez ręcznych skryptów, bez cronzadań. 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 svlogdz runitpakietu , 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 rsyslogdo 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 syslogdsposób obracania dzienników, wciąż oczekiwany przez programy do rejestrowania, takie jak syslog-ng, i którego przykładem są narzędzia, takie jak logrotatewspomniane djangofanw innej odpowiedzi tutaj, jest nieco bardziej przypadkowy. Jeden uruchamia cronzadanie, 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 multilogi svlogdposiada 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 cronzadaniami, a nawet logrotatedemonem, 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.