To pytanie dotyczy Ubuntu 14.10 na moim laptopie programisty.
Mam folder, w /tmp
którym aplikacja służy do umieszczania tymczasowych plików. Ta aplikacja zazwyczaj tworzy folder tymczasowy w moim katalogu głównym, a następnie usuwa go. Z jakiegoś powodu to nie działa, gdy homedir jest zaszyfrowany. Zamiast tego zrobiłem dowiązanie symboliczne do /tmp/foo
mojego homediru. Moja aplikacja może tam pisać i tworzyć tymczasowy podfolder.
Teraz /tmp/foo
jest usuwany przy każdym ponownym uruchomieniu komputera. Do tej pory po ponownym uruchomieniu utworzyłem folder ręcznie. Teraz nauczyłem się w Jak sprzątany jest katalog / tmp? że jest praca, która to robi.
Sprawdziliśmy /etc/init/mounted-tmp.conf
ale mój bashfu a zwłaszcza mój findfu nie są wystarczające, aby robić to, co chcę. Oto fragment tego pliku:
EXCEPT='! -name . ! ( -path ./lost+found -uid 0 ) ! ( -path ./quota.user -uid 0 ) ! ( -path ./aquota.user -uid 0 ) ! ( -path ./quota.group -uid 0 ) ! ( -path ./aquota.group -uid 0 ) ! ( -path ./.journal -uid 0 ) ! ( -path ./.clean -uid 0 ) ! ( -path "./...security*" -uid 0 )' # Remove all old files, then all empty directories find . -depth -xdev $TEXPR $EXCEPT ! -type d -delete find . -depth -xdev $DEXPR $EXCEPT -type d -empty -delete
Chcę dodać warunek, który powoduje, że usuwa wszystko w środku /tmp/foo
, ale nie /tmp/foo
sam. Jak mogę to zrobić?
/tmp/foo
katalog lub plik?mkdir /tmp/foo
wcześniejend script
?Odpowiedzi:
/etc/init/mounted-tmp.conf
jest częściąmountall
pakietu, więc wszelkie aktualizacje tego pakietu i sugerowane zmiany zostaną cofnięte.Zamiast tego, zgodnie ze standardem systemu plików Hierachy (FHS) ;
W odniesieniu do / tmp :
W odniesieniu do / var / tmp :
Więc powinieneś zmienić swój symboliczny link, aby użyć
/var/tmp
zamiast/tmp
.źródło
/var/tmp
to nie jest dobry pomysł?If a person is familiar with ... a certain, single instrument, they may have a confirmation bias to believe that it is the answer to/involved in everything.
Mówię, że OP używa / tmp do czegoś, do czego nie jest przeznaczony - Używanie / tmp jako młota do jego problemu z utrzymaniem tmp-ale-niezupełnie -tmp rzeczy. / var / tmp ma być utrzymywane między ponownymi uruchomieniami, więc jest to poprawna odpowiedź.Nie jest to ściśle odpowiedź na twoje pytanie, ale może się okazać,
/var/tmp
że jest to bardziej odpowiednia lokalizacja, ponieważ nie zostanie wyczyszczona po ponownym uruchomieniu. Jest przeznaczony do plików tymczasowych, których nie należy automatycznie odrzucać po krótkim czasie.Często jednak robię sobie folder w / opt do przechowywania losowych rzeczy, których nie chcę w domu. To odpowiednie miejsce do umieszczenia rzeczy, które są poza kontrolą głównego systemu operacyjnego.
źródło
Tak jak:
Przykład:
Zgadzam się z użytkownikiem aap: Powinieneś się tym zająć w oprogramowaniu używanym przez ponowne utworzenie katalogu tam, jeśli są to pliki tmp, lub użyć innego katalogu, jeśli nie są to pliki tmp, które nie są czyszczone.
źródło
find
polecenie działa ręcznie zgodnie z oczekiwaniami, katalog jest nadal usuwany po edycji/etc/init/mounted-tmp.conf
. Wygląda na to, że dzieje się tu coś jeszcze.-path ./foo
i nawet-name '*foo*'
i żadna z nich nie działała (na Ubuntu Server 14.04). Myślę, że to po prostu niewłaściwy plik i szukamy w niewłaściwym miejscu. To, co sugerujesz, powinno działać, po prostu nie wydaje się.Nie jest dobrym pomysłem mieć pliki o przyszłej wartości, zapisywać w katalogu / tmp (/ var / tmp, jak sugerują inni, jest lepszym miejscem). To powiedziawszy, możesz spróbować na chattr. Powinno to zostać uruchomione po zamknięciu aplikacji, ale przed zamknięciem. Pamiętaj, że ta operacja nie pozwoli, aby cokolwiek zapisało się w tym katalogu odtąd.
dotknij /tmp/foo/ddmmyy/.001_immute_me chattr + i /tmp/foo/ddmmyy/.001_immute_me
źródło
Uruchomić to:
następnie Dodaj to do
/ etc / inittabpatrz tutaj: gdzie jest plik inittab? :Spowoduje to utworzenie / etc / foo podczas rozruchu, jeśli nie istnieje, a następnie opróżnienie.
To samo zrobi przy logowaniu do bash:
źródło
/etc/inittab
. Jest to wyraźnie i jednoznacznie podane na stronie podręcznika.