Logrotate (Polski)

From ArchWiki

Z https://github.com/logrotate/logrotate:

Narzędzie logrotate zostało zaprojektowane w celu uproszczenia administrowania plikami dziennika w systemie, który generuje dużo plików dziennika. Logrotate pozwala na automatyczną kompresję rotacji, usuwanie i wysyłanie plików dziennika. Logrotate można ustawić tak, aby obsługiwał plik dziennika codziennie, co tydzień, co miesiąc lub gdy plik dziennika osiągnie określony rozmiar.

Domyślnie, rotacja programu Logrotate przypisuje numer do istniejącego pliku dziennika, a następnie odtworzeniu oryginalnego pustego pliku dziennika. Na przykład, /var/log/syslog.log zostanie zmieniona na /var/log/syslog.log.1, jeśli już istnieje /var/log/syslog.log.1 wtedy jego nazwa zostanie zmieniona na /var/log/syslog.log.2 (Liczbę zaległości do zachowania ożna zmienić w konfiguracji).

Instalacja

Logrotate można zainstalować z pakietem logrotate.

Domyślnie logrotate uruchamia się codziennie za pomocą systemd timer: logrotate.timer.

Konfiguracja

Podstawowym plikiem konfiguracyjnym dla programu logrotate jest /etc/logrotate.conf. Dodatkowe pliki konfiguracyjne specyficzne dla aplikacji znajdują się w /etc/logrotate.d. Wartości ustawione w plikach konfiguracyjnych specyficznych dla aplikacji zastępują te same parametry w podstawowym pliku konfiguracyjnym. Zobacz przykłady konfiguracji i dostępne opcje logrotate(8).

Aby sprawdzić, czy logrotate działa poprawnie, uruchom go w trybie debugowania, w tym trybie nie robi nic poza wytwarzaniem danych wyjściowych debugowania:

#logrotate --debug /etc/logrotate.conf

Aby przetestować skrypt logrotate (na przykład skrypt /etc/logrotate.d/nginx), spróbuj uruchomić:

#logrotate -f -v /etc/logrotate.d/nginx

Użycie

Logrotate jest zwykle uruchamiany przez systemd: logrotate.service.

Aby uruchomić logrotate ręcznie:

#logrotate /etc/logrotate.conf

Aby rotować pojedynczy plik dziennika:

#logrotate /etc/logrotate.d/mylog

Aby zasymulować uruchomienie pliku konfiguracyjnego (przebieg próbny):

#logrotate --debug /etc/logrotate.d/mylog

Aby wymusić rotacje, nawet gdy warunki nie są spełnione, uruchom:

#logrotate -vf /etc/logrotate.d/mylog

Aby uzyskać więcej informacji, zobacz logrotate(8).

Rozwiązywanie problemów

dzienniki exim nie są obracane

Jeśli ustawiłeś zmienną olddir w /etc/logrotate.conf, otrzymasz komunikat, taki jak:

error: failed to rename /var/log/exim/mainlog to /var/log/old/mainlog.1: Permission denied

Aby to naprawić, dodaj użytkownika exim do grupy log. Następnie zmień grupę olddir w /var/log/old, na log z domyślnego root.

Sprawdź status logrotate

Rotacja Logrotate są zwykle rejestrowane w /var/lib/logrotate.status (opcja -s umożliwia określenie innego pliku stanu):

/var/lib/logrotate.status
"/var/log/mysql/query.log" 2016-3-20-5:0:0
"/var/log/samba/samba-smbd.log" 2016-3-21-5:0:0
"/var/log/httpd/access_log" 2016-3-20-5:0:0
...

Zobacz też