Logrotate (Polski)
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ż
- Logrotate on Gentoo Linux Wiki
- logrotate(8) manual page