Pertanyaan ini tentang Ubuntu 14.10 di laptop pengembang saya.
Saya punya folder /tmp
yang digunakan oleh aplikasi untuk meletakkan barang-barang sementara di sana. Aplikasi ini biasanya membuat folder sementara di homedir saya dan menghapusnya sesudahnya. Untuk beberapa alasan itu tidak berfungsi ketika homedir dienkripsi. Jadi sebagai gantinya, saya membuat symlink ke /tmp/foo
dalam homedir saya. Aplikasi saya dapat menulis di sana dan menjadikannya subfolder sementara.
Sekarang /tmp/foo
dihapus setiap kali saya reboot mesin saya. Sampai sekarang saya baru saja membuat ulang folder secara manual setelah reboot. Sekarang saya pelajari di Bagaimana direktori / tmp dibersihkan? bahwa ada pekerjaan melakukan itu.
Saya telah melihat /etc/init/mounted-tmp.conf
tetapi bashfu saya dan terutama findfu saya tidak cukup untuk melakukan apa yang saya inginkan. Berikut kutipan dari file itu:
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
Yang ingin saya lakukan adalah menambahkan kondisi yang membuatnya menghapus everyting di dalam /tmp/foo
, tetapi tidak dengan /tmp/foo
sendirinya. Bagaimana aku melakukan itu?
/tmp/foo
direktori atau file?mkdir /tmp/foo
benar sebelumnyaend script
?Jawaban:
/etc/init/mounted-tmp.conf
adalah bagian darimountall
paket, sehingga setiap pembaruan pada paket itu dan perubahan yang disarankan akan dikembalikan.Sebaliknya, menurut standar Filesystem Hierachy (FHS) ;
Mengenai / tmp :
Mengenai / var / tmp :
Jadi Anda harus mengubah symbolic link Anda untuk menggunakan
/var/tmp
bukan/tmp
.sumber
/var/tmp
bukan ide yang baik?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.
Saya mengatakan bahwa OP menggunakan / tmp untuk sesuatu itu tidak dimaksudkan untuk digunakan - Menggunakan / tmp sebagai palu untuk masalahnya menjaga tmp-tapi-tidak-cukup hal -tmp. / var / tmp DIMAKSUDKAN untuk disimpan di antara reboot, jadi itu jawaban yang tepat.Bukan semata-mata jawaban atas pertanyaan Anda, tetapi Anda mungkin menemukan
/var/tmp
lokasi yang lebih cocok, karena tidak dibersihkan saat reboot. Ini dirancang untuk file sementara yang tidak boleh dibuang secara otomatis setelah waktu yang singkat.Namun, yang sering saya lakukan adalah membuat sendiri folder di bawah / opt untuk menyimpan hal-hal acak yang tidak saya inginkan di rumah. Itu tempat yang cocok untuk meletakkan hal-hal yang berada di luar kendali OS utama.
sumber
Seperti itu:
Contoh:
Saya setuju dengan pengguna aap: Anda juga harus mengurus ini dalam perangkat lunak yang digunakan dengan membuat kembali direktori di sana jika mereka adalah file tmp atau menggunakan direktori lain jika mereka bukan file tmp yang tidak dibersihkan.
sumber
find
perintah berfungsi seperti yang diharapkan ketika dijalankan secara manual, direktori masih dihapus setelah diedit/etc/init/mounted-tmp.conf
. Sepertinya ada hal lain yang terjadi di sini.-path ./foo
dan bahkan-name '*foo*'
dan tidak ada yang bekerja (pada Ubuntu Server 14.04). Saya pikir itu bukan file yang tepat dan kami mencari di tempat yang salah. Apa yang Anda sarankan seharusnya berhasil, sepertinya tidak.Merupakan ide yang buruk untuk memiliki file dengan nilai masa depan, menulis ke direktori / tmp (/ var / tmp, seperti yang disarankan oleh orang lain, adalah tempat yang lebih baik). Yang mengatakan, Anda mungkin ingin mencoba chattr. Ini harus dijalankan setelah aplikasi keluar, tetapi sebelum shutdown. Ingatlah bahwa operasi ini tidak akan membiarkan apa pun menulis ke direktori itu untuk selanjutnya.
sentuh /tmp/foo/ddmmyy/.001_immute_me chattr + i /tmp/foo/ddmmyy/.001_immute_me
sumber
Jalankan ini:
kemudian Tambahkan ini ke
/ etc / inittablihat di sini: di mana file inittab? :Itu akan membuat / etc / foo saat boot jika tidak ada, dan kemudian mengosongkannya.
Ini akan melakukan hal yang sama pada login bash:
sumber
/etc/inittab
. Ini dinyatakan dengan jelas dan tegas di halaman manualnya.