Czy mogę usunąć wszystko z /var/log
? Czy powinienem tylko usuwać pliki (rekurencyjnie), /var/log
ale pozostawiać foldery?
Czy ktoś ma dobrą rm
linię poleceń? (Moje umiejętności administracyjne wprawiają mnie w zdenerwowanie.)
Uwaga: używam Debiana. Nie jestem pewien, która wersja.
Odpowiedzi:
Zamiast usuwać pliki, należy je obrócić, np
logrotate
. Za pomocą .Nigdy nie wiadomo, kiedy rzeczywiście będziesz potrzebować dzienników, więc lepiej je zarchiwizować (do rozsądnego wieku, np. 3 miesiące).
logrotate
może kompresować stare pliki dziennika, aby nie zajmowały dużo miejsca na dysku.źródło
Jeśli usuniesz wszystko w / var / log, najprawdopodobniej skończysz z tonami komunikatów o błędach w bardzo krótkim czasie, ponieważ są tam foldery, które prawdopodobnie będą istnieć (np. Exim4, apache2, apt, cups, mysql, samba i więcej). Ponadto: istnieją usługi lub aplikacje, które nie utworzą swoich plików dziennika, jeśli nie istnieją. Oczekują, że obecny będzie co najmniej pusty plik. Tak więc bezpośrednia odpowiedź na twoje pytanie brzmi: „Nie rób tego !!!” .
Jak zauważył Joschi, nie ma powodu, aby to robić. Mam uruchomione serwery Debian, które nie usunęły ani jednego pliku dziennika od lat.
źródło
Usuń wszystkie pliki:
Usuń cały plik .gz i obrócony
Spróbuj uruchomić polecenie bez „-delete”, aby go przetestować.
źródło
Klonuję maszyny wirtualne od mistrza. Rozsądne jest wyczyszczenie dziennika w systemie głównym, aby podczas uruchamiania klonów nie uzyskiwał dziennika programu master. Zrobiłem w tcsh:
który usuwa dzienniki, ale zachowuje pliki.
źródło
Czyszczenie wszystkich dzienników w systemie Linux bez usuwania plików:
Samba (
/var/www/samba
) tworzy nazwy plików dziennika z adresami IP, możesz je usunąć:źródło
cp /dev/null $CLEAN
przez> $CLEAN
.Możesz użyć opcji ctime, aby znaleźć stare pliki ... na przykład:
Jak wyjaśniają bindbn, najpierw spróbuj znaleźć pliki pobierania, a po użyciu opcji usuń: D
źródło
/var/log
często ma uprawnieniadrwxrwxr-x
, więc użytkownik nie może zapisywać, chyba że użytkownik jest rootem lub należy do uprzywilejowanej grupy. Oznacza to, że nowe pliki dziennika nie mogą być tworzone przez nieuprzywilejowanych użytkowników.Aplikacje, które oczekują zalogować się do określonego punktu
/var/log
, często dotykają pliku istniejącego gdzieś w/var/log
hierarchii w czasie instalacji (co często ma miejsce z podwyższonymi uprawnieniami),chmod
i prawdopodobniechown
w tym czasie do uprawnień odpowiednich dla nieuprzywilejowanych użytkowników, którzy będą za pomocą aplikacji.Na przykład dzienniki Apache są zazwyczaj zapisywane przez użytkownika
nobody
, który jest jak najmniej uprawniony do tego, aby Apache mógł wykonywać swoje zadania bez nadmiernego ryzyka dla systemu. Ale nawet bardziej wszechstronna aplikacja często oczekuje, że będzie mogła zapisywać w pliku dziennika/var/log
.Co się stanie, jeśli plik dziennika i ścieżka do pliku dziennika nie istnieją? To zależy wyłącznie od aplikacji. Niektóre aplikacje po cichu pomijają rejestrowanie. Inni stworzą wiele ostrzeżeń. A inni po prostu wyskoczą. Nie ma twardej zasady; zależy to od czujności twórcy aplikacji, a także od tego, jak krytyczny jest jego zdolność do rejestrowania. W najlepszym wypadku aplikacja spróbuje albo zapisać, albo ewentualnie utworzyć, a następnie zapisać do pliku dziennika w miejscu docelowym w środku
/var/log
i nie będzie w stanie tego zrobić, ponieważ jest uruchamiany przez użytkownika, który nie ma uprawnień do zapisu w ta część systemu plików.Krótka odpowiedź brzmi: nie, nie usuwaj wszystkiego
/var/log
- łamie to użytkowników kontraktu z wystarczającymi uprawnieniami do robienia takich rzeczy z aplikacjami, które działają w ich systemie i powoduje hałas, cichą awarię i trochę całkowitego zepsucia.Właściwym działaniem, które należy podjąć, jest skonfigurowanie
logrotate
odpowiednich plików konfiguracyjnych. Zazwyczaj rotacja będzie powiązana z zadaniem cron. Obrót może być oparty na interwałach, rozmiarach lub obu. Możliwe jest nawet skonfigurowanie reguł, które unikają rotacji opartej na interwałach, jeśli plik dziennika jest nadal pusty po upływie interwału. Rotacja może obejmować wysyłanie plików dziennika, kompresję, usuwanie, niszczenie i tak dalej.Przeciętny użytkownik nie musiałby zbytnio przejmować się rotacją logów. Deweloperzy prawdopodobnie chcieliby upewnić się, że używane dzienniki mają ustalone reguły rotacji. W rzeczywistości deweloperzy mogą konfigurować rotację dzienników w czasie instalacji dla dzienników specyficznych dla oprogramowania, które oprogramowanie będzie tworzyło i zapisywało.
źródło
Zaimplementowałem tutaj prosty program czyszczący:
https://github.com/Lin-Buo-Ren/Coward-Unix-Log-Cleaner
Po prostu:
/var/log
^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$
^.*/.+\.old$
(bez rozróżniania wielkości liter)/var/log
^.*/.+\.log$
(bez rozróżniania wielkości liter)źródło
stwórz skrypt wykonywalny i spróbuj uruchomić jako root, jeśli sudo nie działa dla ciebie
źródło