Solusi 1:
Itu tergantung pada distribusi Anda. Pada beberapa sistem, itu dihapus hanya saat boot, yang lain menjalankan cronjobs menghapus item yang lebih lama dari n jam.
- Di Ubuntu 14:menggunakan
tmpreaper
yang dipanggil oleh/etc/cron.daily
, dikonfigurasi melalui/etc/default/rcS
dan/etc/tmpreaper.conf
. (Kredit untuk jawaban ini). - Di Ubuntu 16:menggunakan
tmpfiles.d
. (Kredit untuk jawaban ini). - Pada sistem mirip Debian lainnya:saat boot (aturannya ditentukan dalam
/etc/default/rcS
). - Pada sistem mirip RedHat:berdasarkan usia (RHEL6 adalah
/etc/cron.daily/tmpwatch
; RHEL7/RHEL8 dan mirip RedHat dengan systemd dikonfigurasi di/usr/lib/tmpfiles.d/tmp.conf
, dipanggil dengansystemd-tmpfiles-clean.service
). - Di Gentoo
/etc/conf.d/bootmisc
.
Solusi 2:
Di CentOS (dan saya asumsikan Fedora), ada pekerjaan di /etc/cron.daily bernama tmpwatch
. Ini menjalankan /usr/sbin/tmpwatch
, yang akan menghapus file yang belum diakses dalam jumlah jam yang ditentukan, misalnya, perilaku defaultnya adalah memeriksa atime
untuk file untuk mengevaluasi apakah itu telah digunakan baru-baru ini.
http://linux.die.net/man/8/tmpwatch
Distro lain (dan instalasi) mungkin memiliki /tmp yang dipasang sebagai tmpfs, yang merupakan sistem file dalam memori. Ini akan dihapus saat boot.
Solusi 3:
Di Ubuntu 11.10 yang saya gunakan, ada skrip pemula di /etc/init/mounted-tmp.conf
. Awalannya mengatakan ini:
# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.
description "Clean /tmp directory"
start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)
Anda dapat membaca lebih detail, namun secara umum /tmp
dibersihkan saat dipasang atau /usr
dipasang. Hal ini sering terjadi saat boot, jadi /tmp
ini pembersihan berjalan di setiap boot.
Di /etc/default/rcS
Anda memiliki TMPTIME
set, yang digunakan dalam skrip init di atas untuk memberi makan kedua find
perintah pada akhirnya - pada dasarnya mengontrol penghapusan file berdasarkan waktunya (dimodifikasi, diubah, diakses).
Solusi 4:
Dari Fedora 18 dan seterusnya, /tmp
dipasang pada tmpfs
(yaitu RAM) secara default, dan dengan demikian dihapus saat daya dimatikan.
Perilaku ini dapat dinonaktifkan dengan mengeluarkan systemctl mask tmp.mount
dan reboot (dan diaktifkan kembali dengan mengeluarkan systemctl unmask tmp.mount
dan reboot), lalu /tmp
akan dipasang pada /
sistem file dan dapat dikontrol oleh /usr/lib/tmpfiles.d/tmp.conf
pengaturan.
Lihat http://fedoraproject.org/wiki/Features/tmp-on-tmpfs dan man tmpfiles.d
untuk detail lebih lanjut tentang setiap kasus.
Solusi 5:
Pada RHEL 6.2 file di /tmp dihapus oleh tmpwatch jika belum diakses dalam 10 hari.
File /etc/cron.daily/tmpwatch mendefinisikan cara tmpwatch dipanggil.
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
Argumen -x adalah file yang akan dikecualikan. Argumen ke-2 hingga terakhir adalah waktu untuk menunggu setelah waktu akses terakhir. Argumen terakhir adalah direktori yang akan diperiksa.