Korzystam z logrotate, aby obracać dzienniki dostępu, błędów i przepisywania Apache. Mój plik konfiguracyjny wygląda następująco:
/apache/*log {
compress
dateext
rotate 365
size=+300M
olddir /log/old/apache
notifempty
missingok
lastaction
/bin/apache reload
endscript
}
Mój problem polega na tym, że za każdym razem, gdy dochodzi do rotacji, Apache musi zostać ponownie załadowany, ponieważ Apache nie zapisuje więcej w właśnie obróconym pliku dziennika. Czy istnieje sposób na uniknięcie przeładowania Apache za każdym razem, gdy logrotate wykonuje obrót?
źródło
lastaction echo "" | /apache/*log endscript
uchwyt pliku nie jest „zgubiony”?logrotate
doc mówi: „Zauważ, że jest bardzo mały przedział czasu między kopiowaniem pliku a jego obcinaniem, więc niektóre dane logowania mogą zostać utracone”.copytruncate
?Polecam użyć http://cronolog.org/
Tak to wykorzystuję:
źródło