Jak /tmp
sprzątany jest katalog? Czy to jest automatyczne? Jeśli tak, to jak często jest sprzątany?
filesystem
tmp
Olivier Lalonde
źródło
źródło
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
/ etc / fstab.Odpowiedzi:
Uwaga! Ta odpowiedź jest nieaktualna, ponieważ przynajmniej Ubuntu 14.04. Zobacz inne odpowiedzi na bieżącą sytuację, a jeśli okażą się poprawne, głosuj z wściekłością. Prześlij także komentarz, aby umieścić tutaj link do aktualnej poprawnej odpowiedzi.
14.04 patrz https://askubuntu.com/a/759048/1366
16.10 patrz https://askubuntu.com/a/857154/453746
Stara odpowiedź z 2011 r .:
Czyszczenie
/tmp
odbywa się za pomocą skryptu upstart/etc/init/mounted-tmp.conf
. Skrypt jest uruchamiany przy każdym uruchomieniu/tmp
. Praktycznie oznacza to przy każdym rozruchu.Skrypt wykonuje mniej więcej następujące czynności: jeśli plik w
/tmp
starszym wieku niż kilka$TMPTIME
dni, zostanie usunięty.Domyślna wartość
$TMPTIME
to 0, co oznacza, że każdy plik i katalog w nim/tmp
zostanie usunięty.$TMPTIME
jest zmienną środowiskową zdefiniowaną w/etc/default/rcS
.źródło
Katalog jest domyślnie czyszczony przy każdym uruchomieniu, ponieważ
TMPTIME
domyślnie jest równy 0.Tutaj możesz zmienić czas w następującym pliku:
TMPTIME
mówi, jak często tmp dir powinien być usuwany w ciągu kilku dniźródło
tmpreaper
szansę.tmpwatch
Powinno też być odpowiednim narzędziem.Chociaż
/tmp
folder nie jest miejscem do przechowywania plików przez dłuższy czas, czasami chcesz zachować trochę więcej czasu niż przy następnym uruchomieniu , co jest domyślne w systemach Ubuntu. Wiem, że raz lub dwa pobrałem coś/tmp
podczas testowania, po wprowadzeniu zmian uruchomiłem ponownie, a następnie ponownie straciłem oryginalne dane. Można to zmienić, jeśli chcesz/tmp
trochę dłużej przechowywać swoje pliki.Zmiana
/tmp
częstotliwości czyszczeniaDomyślne ustawienie, które nakazuje systemowi wyczyścić się
/tmp
przy ponownym uruchomieniu, znajduje się w/etc/default/rcS
pliku. Wartość, na którą będziemy patrzeć, toTMPTIME
.Obecna wartość
TMPTIME=0
mówi usuń pliki przy ponownym uruchomieniu, pomimo wieku pliku. Zmiana tej wartości na inną (dodatnią) liczbę spowoduje zmianę liczby dni, przez które plik może przetrwać/tmp
.To ustawienie pozwoli na pozostanie plików do ukończenia
/tmp
tygodnia, a następnie usunie je przy następnym uruchomieniu. Liczba ujemna (TMPTIME=-1
) informuje system, aby nigdy niczego nie usuwał/tmp
. Prawdopodobnie nie jest to coś, czego chcesz, ale jest dostępne.źródło
/etc/init/mounted-temp.conf
, ale ma linię,start on mounted MOUNTPOINT=/tmp
która sprawia, że uważam, że nie dotyczy./var/tmp
zamiast/tmp
.Sprawdzam to na Ubuntu 16.10. Mogę poświadczyć, że edycja / etc / default / rcS nie ma już żadnego efektu, a pliki w tmp są usuwane przez restart, bez względu na to, co umieścisz w tym pliku. Jak wspominają inni, tmpreaper nie jest już używany.
Myślę, że właściwą odpowiedzią jest to, że Ubuntu 16.10 ma nową konfigurację. Istnieje folder /etc/tmpfiles.d, udokumentowany na stronie podręcznika „tmpfiles.d”. W tym folderze należy umieścić plik konfiguracyjny, aby kontrolować, czy / tmp ma zostać skasowany. Oto, co robię, aby zatrzymać ponowne uruchamianie w celu usunięcia plików w / tmp, chyba że mają one 20 dni:
Zamień „20d” na „-”, jeśli nigdy nie chcesz, aby pliki były usuwane. To jest mój najlepszy wysiłek, że strona podręcznika jest prawie nieprzenikniona ze szczegółami.
Zaletą nowej konfiguracji jest to, że narzędzie do czyszczenia plików może nadal działać, nawet jeśli system nie zostanie ponownie uruchomiony (jak w przypadku zawsze na serwerze). To chyba duży plus.
źródło
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
W Ubuntu 14.04 odbywa się to przez
tmpreaper
, który jest wywoływany codziennie przez cron (from/etc/cron.daily
). Program można skonfigurować za pomocą/etc/default/rcS
i/etc/tmpreaper.conf
.źródło
Przed 14.04:
Jest czyszczony przy każdym ponownym uruchomieniu.
źródło
tmpreaper
.W
systemd
Ubuntu (15.10 i nowszych) odbywa się to przez systemd, przy użyciusystemd-tmpfiles-clean
usługi i timera:I
Więc
systemd-tmpfiles-clean
działa przy wyłączeniu, a raz dziennie inaczej. Pliki, które czyści, można rozszerzyć, używając/etc/tmpfiles.d
wspomnianej w innej odpowiedzi .Możesz sam zmienić zachowanie timera za pomocą
systemctl edit systemd-tmpfiles-clean.timer
i różnychTimer
opcji konfiguracji systemowej (patrzman 5 systemd.timer
).źródło
/tmp
wciąż nie posprzątałem. i muszę to wyczyścić. nawet ręczne uruchomieniesudo systemctl start systemd-tmpfiles-clean
nie załatwia sprawy. Jakieś pomysły dlaczego?Na jednym z naszych serwerów z Ubuntu mamy skrypt do usuwania plików z katalogu / tmp i działa on co noc.
Skrypt to:
Po prostu zapisz powyższą zawartość do pliku chmod 775 i stwórz wpis crona, aby go uruchomić. Ponieważ jest to serwer sieciowy, nie chcemy go ponownie uruchamiać z oczywistych powodów.
źródło
ln -s /usr /tmp/kaboom
a nawetln -s /* /tmp/
...