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.

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/


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


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.


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 ...


obcięcie pliku nie działa dla mnie, zrobiłem test na centos 7 i na redhat 5
— c4f4t0r
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.