Korzystanie z cronjob do czyszczenia / tmp

11

Czy bezpiecznie jest używać skryptu bash i cronjob do /tmpautomatycznego opróżniania , czy powinienem to zrobić inaczej?

Jochem Kuijpers
źródło

Odpowiedzi:

13

/tmpjest czyszczony przy każdym ponownym uruchomieniu systemu, ale w przypadku systemów, których nie można często ponownie uruchamiać, a zwłaszcza jeśli jedynym celem jest wyczyszczenie /tmpskryptu, można go wyczyścić.

Żaden proces nie powinien przechowywać tam ważnych danych, ale ważne jest, abyś mógł je wyczyścić /tmpbez zakłócania procesów zapisujących dane tmp.

Polecam do tego użyć tmpreaper.

Możesz go zainstalować za pomocą sudo apt-get install tmpreaper.

Ze strony podręcznika:

tmpreaper rekurencyjnie wyszukuje i usuwa pliki i puste katalogi, do których nie uzyskano dostępu przez określoną liczbę sekund. Zwykle służy do czyszczenia katalogów używanych do tymczasowego przechowywania miejsca, takich jak „/ tmp”. Przeczytaj rozdział OSTRZEŻENIA w tym podręczniku.

Zastosowanie obejmuje zazwyczaj powołując tmpreapersię /tmpz argumentami następuje czas spec. Argumentem określającym czas może być dowolna wartość z ddni, hgodzin, mminut lub ssekund.

Użyj polecenia „ --testna sucho” i uzyskaj wynik z wyników przed uruchomieniem polecenia. To pozwoli Ci zorientować się, co zostanie usunięte, zanim faktycznie wprowadzisz jakiekolwiek zmiany w systemie plików.

Bruno Pereira
źródło
Dziękuję Ci! Aby w pełni odpowiedzieć na moje pytanie, czy możesz mi wyjaśnić, dlaczego jest to lepsze niż zwykłe usuwanie rekurencyjne?
Jochem Kuijpers,
1
Nie jest, jest po prostu prostszy w użyciu, a użyte argumenty są bardziej zrozumiałe. Proste rm -rfna liście plików zwróconych przez findrównież wykona to zadanie. To „tylko inny sposób”, nawet nie mówiąc, że jest najlepszy, tylko ten, którego używam na konfigurowanych przeze mnie serwerach.
Bruno Pereira
tmpreaperwydaje się dobrym narzędziem, wartym użycia --testi --showdeletespodczas testowania.
RichVel,
3

Spróbuj dodać wykonywaną cronjob

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf 
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf 

Spowodowałoby to usunięcie wszystkich plików starszych niż 5 dni.

turbophi
źródło