W Unixie, jaki jest najlepszy sposób na zmniejszenie rozmiaru ogromnego pliku dziennika, który jest aktywnie zapisywany?

11

Na serwerze z linuksem chcę zmniejszyć rozmiar pliku dziennika, który jest kilka GB duży. Odcięcie górnej połowy, a może pierwszy milion linii zadziałałoby.

Phil
źródło

Odpowiedzi:

12

Często pojawia się to w wywiadach ...

Czy chcesz obciąć plik bez zakłócania procesów? Czy jakakolwiek informacja w pliku dziennika jest cenna? Jeśli tak, zwykle „zeruję” plik prostym ciągiem bash.

: > /var/log/badlogfile

Pojawia się to w sytuacjach, w których możesz mieć aplikację, której nie można ponownie uruchomić w kontrolowany sposób. Powiedzmy, że jest to aplikacja do handlu finansami, a programu nie można zatrzymać ani uruchomić ponownie w ciągu dnia handlowego. Jednak pliki dziennika rosną w pewnym nieprzyzwoitym tempie z powodu błędu aplikacji. Obcinanie plików dziennika przy użyciu metody powyżej lub poniżej może utrzymać działanie systemu.

Zobacz także: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/

ewwhite
źródło
1
czy dwukropek ma oznaczać monit, czy rzeczywiście wchodzi w skład polecenia?
Phil
Dwukropek jest częścią polecenia.
ewwhite
Tak naprawdę nie potrzebujesz okrężnicy.
MikeyB
To nie jest możliwe. Nie jest to potrzebne, ale lubię je trzymać, kiedy robię zalecenie.
ewwhite
To nie działało dla mnie, dziennik nie zmienił rozmiaru. Poszedł do zera, ale potem wrócił do swojego pełnego rozmiaru
thouliha
2

Możesz umieścić go w logrotate, wtedy nie wymknie się spod kontroli tak łatwo

netpixie
źródło
Ostatecznie to musi się zdarzyć. Jestem nowy w tej pracy ...
Phil
1

Jeśli jest aktywnie napisane do Ciebie, tak naprawdę nie masz wiele do zrobienia przez obcięcie. Jedyne opcje to wyczyszczenie pliku (możesz go najpierw skopiować w innym miejscu).

echo "" >/var/log/fileYouWantToEmpty

W ten sposób plik jest pusty, ale nadal jest tym samym plikiem / i-węzłem, aby nie zakłócać rejestrowania programu.

Twirrim
źródło
0

Możesz także wypróbować cat / dev / null> / var / log /. Ale muszę ostrzec, że / dev / null nie jest zaimplementowane w niektórych starszych wersjach ...

Nandhini Anand
źródło
obcięcie pliku nie działa dla mnie, zrobiłem test na centos 7 i na redhat 5
c4f4t0r