Nie mogłem znaleźć w Google żadnego bezpiecznego sposobu na wyczyszczenie dziennika systemowego. Czy ktoś zna bezpieczny i niezawodny sposób?
Powiedzmy, że eksperymentowałem z czymś, a moje logi są zaśmiecone różnymi komunikatami o błędach. Ponadto wyświetlam mój dziennik na pulpicie za pomocą Conky. Naprawdę nie chcę widzieć tych błędów, które przypominają mi okropny dzień, kiedy naprawiałem te rzeczy, chcę poczuć się jak nowy mężczyzna po tym horrorze. Myślę, że wszyscy zgodzą się, że jest to uzasadniony powód do wyczyszczenia dzienników: P.
systemd
systemd-journald
Łukasz Zaroda
źródło
źródło
journalctl --vacuum-size=1K
następniejournalctl
nadal pokazuje sposób więcej niż 1K. Pokazuje wszystkie wiadomości od ostatniego uruchomienia.journalctl --flush --rotate
przedjournalctl --vacuum-time=1s
i usuwa więcej rzeczy, choć jeszcze nie wszystko.Zwykle sam nie czyścisz dziennika. Tym zarządza sam systemd, a stare dzienniki są wypierane w miarę pojawiania się nowych danych. Właściwe byłoby zaplanowanie w dzienniku przechowywania tylko takiej ilości danych, jaką jesteś zainteresowany. Najczęstszą rzeczą do dostosowania jest całkowity dysk przestrzeń, którą może zająć. Po przekroczeniu tej granicy zacznie rozstawiać stare wpisy, aby pozostać w pobliżu tej wartości.
Możesz to ustawić w następujący
/etc/systemd/journald.conf
sposób:źródło
MaxRetentionSec
zamiastSystemMaxUse
. Zobaczman journald.conf
po więcej szczegółów.W odpowiedzi Michaela brakuje jednej rzeczy: odkurzanie usuwa tylko zarchiwizowane pliki dziennika, a nie aktywne. Aby pozbyć się wszystkiego, musisz najpierw obrócić pliki, aby najnowsze wpisy zostały przeniesione do plików nieaktywnych.
Tak więc wydaje się , że pełna odpowiedź na usunięcie wszystkich wpisów jest
(Pamiętaj, że nie możesz tego połączyć w jedno
journalctl
polecenie).Nawiasem mówiąc, niektóre dystrybucje skonfigurowały dziennik tak, aby zapisywał dzienniki na dysku (
/var/log/journal
), podczas gdy inne przechowują dzienniki w pamięci (/run/log/journal
). Oczekuję, że w niektórych przypadkach może być konieczne użyciejournalctl --flush
najpierw, aby usunąć wszystko.Jeśli nie masz
--rotate
wersji, możesz użyć--since
argumentu do filtrowania wpisów:źródło
W Arch Linuxie najbardziej mi się podobało:
sudo systemctl restart systemd-journald
W moim systemie każdy plik dziennika ma 8 MB, a powyższe wyczyściło wszystkie oprócz 3, co daje całkowity rozmiar ~ 25 MB.
My use-case został wyłączanie krowa dla Btrfs (tylko dla katalogu dziennika i podkatalogów)
sudo chattr +C /var/log/journal/*
. Problem polega na tym, że atrybut jest ustawiony tylko na nowo utworzone pliki, a zatem chęć opróżnienia dziennika.źródło
SystemMaxUse=1K
, wznowionasystemd-journald
, ale journalctl nadal pokazuje wpisy Chcę zniknął. Jaki jest ten postęp od płaskich plików tekstowych?Odtąd
--vacuum-time
i--vacuum-size
nic dla mnie nie zrobiłem, zrobiłem następujące:To nie w porządku, ale zadziałało.
źródło
/run/log
.Bardzo brutalna metoda czyszczenia całego dziennika:
Możesz także użyć
--vacuum-size
tak, jak powiedział Michael.źródło
systemctl restart systemd-journald
.Zarówno --rotate, jak i --vacuum-time = 1s nie działały dla mnie na CentOS. Byłem w stanie to wyczyścić w ten sposób:
źródło
./journal
. Tejournalctl
polecenia działa tylko w najnowszym jeden. Musiałem więc ręcznie usunąć stary katalog i to jest bezpieczne. Po tym, jak ograniczę rozmiar w conf conf.Utwórz kopię zapasową na wypadek, gdybyś jej potrzebował w przyszłości:
cp /run/log/journal/<temp-string>/system.journal /mylog/dir/back/system.journal.bak
Wyczyść plik:
cd /run/log/journal/<temp-string>/
>system.journal
Sprawdź, aby zobaczyć najnowsze dzienniki:
journalctl -xe
źródło
journalctl -b
pokaże tylko od ostatniego rozruchu. Można również użyć-b -1
,-b -2
itd. Twój przerażające dzień jest nadal istnieje, ale nie będzie musiał go zobaczyć, o ile zajdzie taka potrzeba.źródło
Moja poprzednia odpowiedź właśnie została usunięta, ponieważ została „zduplikowana”. Przykro mi, że w mojej poprzedniej odpowiedzi nie byłem wystarczająco jasny, ale różniło się to od istniejących odpowiedzi. Oto bardziej rozbudowana wersja:
journalctl -m --vacuum-time=1s
zrobił dla mnie lewę. Proszę zauważyć-m
flagę , która scala wszystkie twoje dzienniki, a następnie je czyści. Bez-m
flagi nic nie wyczyściło w moim przypadku (na CentOS-7).Mam nadzieję, że to pomoże.
źródło