Jak wprowadzić zmiany obracania logów


Odpowiedzi:


139

logrotateużywa crontabdo pracy. To zaplanowana praca, a nie demon, więc nie trzeba ponownie ładować konfiguracji.
Po crontaburuchomieniu logrotateautomatycznie użyje nowego pliku konfiguracyjnego.
Jeśli chcesz przetestować konfigurację, możesz również wykonać logrotateją samodzielnie, używając polecenia:

logrotate /etc/logrotate.d/your-logrotate-config

Albo jak wspomniano w komentarzach, identyfikacji logrotatelinii w wyjściu polecenia crontab -li uruchom wiersz poleceń odnoszą się do odpowiedzi SLM jest mieć dokładną cron.daily wyjaśnienie


1
Aby dodać do twojej odpowiedzi, wpis cron dla logrotatezaplanowany jest do uruchomienia raz dziennie.
mkc

@Ketan, więc jak mogę wpłynąć na to od razu? dzięki
BufBills,

Niepewny. Jedną z możliwości jest znalezienie odpowiedniego wpisu z crontab crontab -li wykonanie go.
mkc

2
Jeśli chcesz, żeby zadziałało, natychmiast uruchom posłowie cron.
slm

2
logrotatema -dopcję testowania (lub „debugowania”), zaleciłbym uruchomienie go przynajmniej raz z tym.
FrustratedWithFormsDesigner

36

Większość logrotatekonfiguracji, które widziałem na różnych dystrybucjach, kończy się /etc/cron.daily. Jest tam odpowiedni skrypt powłoki logrotate.

Przykład

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

Uruchamianie ręczne

Jeśli chcesz, aby działał ręcznie, po prostu uruchom skrypt jako root:

$ sudo /etc/cron.daily/logrotate

Jeśli spojrzysz na skrypt, który zwykle tam jest, pokazuje, jak możesz również uruchomić logrotateręcznie, po prostu uruchamiając logrotate+ ścieżkę do jego pliku konfiguracyjnego.

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

31

Powinno to być automatyczne przez crona. Możesz go zmusić do przetestowania zmian.

W przypadku globalnego logrotatu:

sudo logrotate -v -f /etc/logrotate.conf

W przypadku pojedynczego pliku konf:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf

11
-fdla rotacji sił istnieje również -ddebugowanie, które jest również uruchomieniem suchym, wypisze wszystko, co zrobiłby, ale tak naprawdę nie zrobi tego.
ThorSummoner

5

Na moim komputerze CentOS 6.5 do konfiguracji logrotate dla nginx musiałem to zrobić:

logrotate /etc/logrotate.d/nginx

A potem sprawdziłem, czy logrotate zajmuje się moją nową konfiguracją nginx w następujący sposób:

cat /var/lib/logrotate.status
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.