Bagaimana cara /tmp
membersihkan direktori? Apakah ini otomatis? Jika ya, seberapa sering dibersihkan?
filesystem
tmp
Olivier Lalonde
sumber
sumber
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
/ etc / fstab.Jawaban:
Catatan! Jawaban ini sudah usang sejak setidaknya ubuntu 14.04. Lihat jawaban lain untuk situasi saat ini dan jika mereka terbukti benar maka angkatlah mereka dengan marah. Juga posting komentar sehingga saya dapat menaruh tautan di sini ke jawaban yang benar saat ini
Untuk 14,04 lihat https://askubuntu.com/a/759048/1366
Untuk 16.10 lihat https://askubuntu.com/a/857154/453746
Jawaban lama dari 2011:
Pembersihan
/tmp
dilakukan oleh skrip pemula/etc/init/mounted-tmp.conf
. Script dijalankan oleh pemula setiap kali/tmp
dipasang. Praktis itu berarti di setiap boot.Script kira-kira melakukan hal-hal berikut: jika suatu file
/tmp
lebih tua dari$TMPTIME
hari maka akan dihapus.Nilai default
$TMPTIME
adalah 0, yang berarti setiap file dan direktori dalam/tmp
dihapus.$TMPTIME
adalah variabel lingkungan yang didefinisikan dalam/etc/default/rcS
.sumber
Direktori dihapus secara default di setiap boot, karena
TMPTIME
0 secara default.Di sini Anda dapat mengubah waktu dalam file berikut:
TMPTIME
mengatakan seberapa sering dir tmp bisa dihapus dalam beberapa harisumber
tmpreaper
kesempatan.tmpwatch
harus menjadi alat yang tepat.Walaupun
/tmp
folder tersebut bukan tempat untuk menyimpan file jangka panjang, kadang-kadang Anda ingin menyimpan beberapa hal lebih lama daripada saat Anda reboot , yang merupakan default pada sistem Ubuntu. Saya tahu satu atau dua kali saya mengunduh sesuatu/tmp
selama pengujian, reboot setelah melakukan perubahan dan kemudian kehilangan data asli lagi. Ini dapat diubah jika Anda ingin menyimpan/tmp
file Anda sedikit lebih lama.Mengubah
/tmp
Frekuensi PembersihanPengaturan default yang memberitahu sistem Anda untuk menghapus
/tmp
saat reboot disimpan dalam/etc/default/rcS
file. Nilai yang akan kita lihat adalahTMPTIME
.Nilai saat ini
TMPTIME=0
mengatakan hapus file saat reboot meskipun usia file. Mengubah nilai ini ke nomor (positif) yang berbeda akan mengubah jumlah hari file dapat bertahan/tmp
.Pengaturan ini akan memungkinkan file untuk tetap masuk
/tmp
sampai mereka berumur seminggu, dan kemudian menghapusnya pada reboot berikutnya. Angka negatif (TMPTIME=-1
) memberi tahu sistem untuk tidak pernah menghapus apa pun di/tmp
. Ini mungkin bukan sesuatu yang Anda inginkan, tetapi tersedia.sumber
/etc/init/mounted-temp.conf
, tetapi memiliki garisstart on mounted MOUNTPOINT=/tmp
yang membuat saya berpikir itu tidak berlaku./var/tmp
bukan/tmp
.Saya memeriksa ini di Ubuntu 16.10. Saya dapat menyatakan bahwa pengeditan / etc / default / rcS tidak memiliki efek sama sekali dan file dalam tmp dihapus oleh reboot tidak peduli apa yang Anda masukkan ke dalam file itu. Seperti yang disebutkan orang lain, tmpreaper tidak lagi digunakan.
Saya pikir jawaban yang tepat adalah bahwa Ubuntu 16.10 memiliki pengaturan baru. Ada folder /etc/tmpfiles.d, yang didokumentasikan di halaman manual "tmpfiles.d". Dalam folder itu, seseorang harus meletakkan file konfigurasi untuk mengontrol apakah / tmp akan dihapus. Inilah yang saya lakukan untuk menghentikan reboot dari menghapus file di / tmp kecuali mereka berumur 20 hari:
Ganti "20d" dengan "-" jika Anda tidak ingin file dihapus. Ini adalah upaya terbaik saya, halaman manual itu hampir tidak bisa ditembus dengan detail.
Keuntungan dari pengaturan baru adalah bahwa pembersih file masih dapat berjalan bahkan jika sistem tidak di-boot ulang (seperti dalam kasus selalu di server). Itu nilai tambah yang besar, saya pikir.
sumber
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
Di Ubuntu 14.04 ini dilakukan oleh
tmpreaper
, yang disebut setiap hari oleh cron (dari/etc/cron.daily
). Program ini dapat dikonfigurasi melalui/etc/default/rcS
dan/etc/tmpreaper.conf
.sumber
Sebelum 14,04:
Itu dibersihkan setiap kali Anda reboot.
sumber
tmpreaper
.Di
systemd
Ubuntu (15.10 dan yang lebih baru), ini dilakukan oleh systemd, menggunakansystemd-tmpfiles-clean
layanan dan timer:Dan
Jadi
systemd-tmpfiles-clean
berjalan pada saat shutdown, dan sekali sehari sebaliknya. File yang dibersihkan dapat diperpanjang menggunakan yang/etc/tmpfiles.d
disebutkan dalam jawaban lain .Anda dapat mengubah perilaku penghitung waktu itu sendiri menggunakan
systemctl edit systemd-tmpfiles-clean.timer
, dan menggunakan berbagaiTimer
opsi konfigurasi systemd (lihatman 5 systemd.timer
).sumber
/tmp
masih belum dibersihkan. dan saya perlu dibersihkan. bahkan mulai manualsudo systemctl start systemd-tmpfiles-clean
tidak melakukan trik. Ada ide mengapa?Di salah satu server kami yang menjalankan Ubuntu, kami memiliki skrip untuk menghapus file di / tmp dan berjalan setiap malam.
Scriptnya adalah:
Cukup simpan konten di atas ke file chmod 775 file dan buat entri cron untuk menjalankannya. Karena ini adalah server web, kami tidak ingin mem-boot ulang untuk alasan yang jelas.
sumber
ln -s /usr /tmp/kaboom
atau bahkanln -s /* /tmp/
...