Jak wprowadzić zmiany obracania logów

99

Podążyłem za tym linkiem, aby zmienić konfigurację rotacji logów dla RHEL 6

Co powinienem zrobić po wprowadzeniu zmiany w pliku konfiguracyjnym?

BufBills
źródło

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

Kiwy
źródło
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
slm
źródło
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
maskeda
źródło
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
Raptor
źródło