解決策 1:
それはあなたのディストリビューションに依存します。一部のシステムでは、起動時にのみ削除されます。他のシステムでは、n よりも古いアイテムを削除する cronjobs が実行されています。 時間。
- Ubuntu 14 の場合:
tmpreaper
を使用/etc/cron.daily
によって呼び出されます 、/etc/default/rcS
で設定 と/etc/tmpreaper.conf
. (この回答のクレジット) - Ubuntu 16 の場合:
tmpfiles.d
を使用 . (この回答のクレジット) - 他の Debian ライクなシステムの場合:起動時 (ルールは
/etc/default/rcS
で定義されています) ). - RedHat のようなシステムの場合:年齢別 (RHEL6 は
/etc/cron.daily/tmpwatch
でした); RHEL7/RHEL8 と RedHat のように systemd を使用し、/usr/lib/tmpfiles.d/tmp.conf
で構成されています 、systemd-tmpfiles-clean.service
によって呼び出されます ). - Gentoo
/etc/conf.d/bootmisc
の場合 .
解決策 2:
CentOS (そして私は Fedora を想定しています) では、/etc/cron.daily に tmpwatch
というジョブがあります。 .これは /usr/sbin/tmpwatch
を実行します 、指定された時間内にアクセスされていないファイルを削除します。つまり、デフォルトの動作は atime
を調べることです ファイルが最近使用されたかどうかを評価します。
http://linux.die.net/man/8/tmpwatch
他のディストリビューション (およびインストール) では、/tmp がメモリ内ファイルシステムである tmpfs としてマウントされている場合があります。これは起動時にクリアされます。
解決策 3:
私が使用しているUbuntu 11.10では、 /etc/init/mounted-tmp.conf
にupstartスクリプトがあります .その冒頭には次のように書かれています:
# 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)
詳細を読むことができますが、一般的に /tmp
マウント時または /usr
時にクリーニングされます 搭載されています。これは起動時に定期的に発生するため、この /tmp
ブートごとにクリーニングが実行されます。
/etc/default/rcS
で あなたは TMPTIME
を持っています 上記の init スクリプトで 2 つの find
を供給するために使用されます。 最後のコマンド - 基本的に、時間 (変更、変更、アクセス) に基づいてファイルの削除を制御します。
解決策 4:
Fedora 18 以降、/tmp
tmpfs
に搭載されています (つまり、RAM) に保存されているため、電源を切ると消去されます。
この動作は systemctl mask tmp.mount
を発行することで無効にできます 再起動します (そして systemctl unmask tmp.mount
を発行して再度有効にします) 再起動)、そして /tmp
/
に搭載されます ファイルシステムであり、/usr/lib/tmpfiles.d/tmp.conf
で制御できます
http://fedoraproject.org/wiki/Features/tmp-on-tmpfs および man tmpfiles.d
を参照してください 各ケースの詳細については、
解決策 5:
RHEL 6.2 では、/tmp 内のファイルは、10 日間アクセスされていない場合、tmpwatch によって削除されます。
ファイル /etc/cron.daily/tmpwatch は、tmpwatch の呼び出し方法を定義します。
#! /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
-x 引数は、除外するファイルです。最後から 2 番目の引数は、最後にアクセスした時間の後に待機する時間です。最後の引数は、調べるディレクトリです。