Spis treści
Jak rotować logi w Linuksie ?
Po pierwsze musimy sprawdzić czy logrotate jest zainstalowany na serwerze czy nie. Będziemy zarządzać plikami logów używając logrotate.
Ta metoda może być używana również w centos 6. Wszystkie komendy są takie same i proces jest również taki sam.
Jak sprawdzić czy logrotate jest zainstalowany ?
whereis logrotate
Jeśli brakuje logrotate to zainstaluj go używając poniższej komendy. Pomiń ten krok, jeśli wszystko jest już zainstalowane.
yum update && yum install logrotate
Edytuj plik httpd.conf
vim /etc/httpd/conf/httpd.confinclude /etc/logrotate.d
Edytuj plik log rotate dla serwera apache
cd /etc/logrotate.d/httpd/var/log/httpd/*log {missingoknotifemptysharedscriptsdelaycompresspostrotate/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || trueendscript}/var/www/html/logs/*.log {dailyrotate 3size 10Mcompressdelaycompresspostrotate/bin/systemctl reload httpd reload > /dev/null 2>/dev/null || trueendscript}
Sprawdź log
co się stanie, jeśli logrotate zostanie wykonany teraz. Spróbuj użyć opcji -d (możesz właściwie uruchomić logrotate pomijając tę opcję):
logrotate -d /etc/logrotate.d/apache2.conf
Logrotate Ważne warunki.
Obracanie logów oznacza, że po pewnym czasie stare logi są zrzucane do pliku. To pomaga nam w utrzymaniu logów bardzo efektywnie.
missingok – nie wypisuje błędu, jeśli plik logu jest pusty
notifempty – nie rotuje pliku logu, jeśli jest pusty
compress – Stare wersje plików logu są domyślnie kompresowane z gzip(1)
size – Plik logu jest rotowany tylko wtedy, gdy jest większy niż 20k
daily – zapewnia codzienną rotację
create – tworzy nowy plik logu z uprawnieniami 600, gdzie właścicielem i grupą jest użytkownik root
copy – tworzy kopię pliku logu, ale nie zmieniaj oryginału w ogóle.
mail <email@address> – Kiedy dziennik jest usuwany z obiegu, jest wysyłany na adres.
olddir <directory> – Logi są przenoszone do <directory> w celu rotacji.
postrotate/endscript – Linie pomiędzy postrotate i endscript są wykonywane po logu
.