私はさまざまなファイルを/tmp
、私はそれらを削除するルールについて疑問に思いましたか?
ディストリビューションによって異なると思いますが、特にUbuntuとFedoraのデスクトップバージョンに興味があります。
しかし、ニースを見つける一般的な方法は素晴らしいことです。
それを制御する素敵な一般的な方法はさらに良いでしょう! (「毎日午前3時、削除/tmp
60日以上経過したファイルですが、再起動時にディレクトリをクリアしません ')
それはあなたのディストリビューションに依存します。一部のシステムでは、ブート時にのみ削除され、他のシステムではn時間より古いアイテムの削除を実行するcronjobsがあります。
/etc/default/rcS
で定義されています)。/etc/cron.daily/tmpwatch
でした。RHEL7/ RHEL8とRedHatのようにsystemdで構成され、/usr/lib/tmpfiles.d/tmp.conf
で構成され、systemd-tmpfiles-clean.service
によって呼び出されます)。/etc/conf.d/bootmisc
で。CentOS(と私はFedoraを想定しています)では、tmpwatch
というジョブが/etc/cron.dailyにあります。これは/usr/sbin/tmpwatch
は、指定した時間内にアクセスされなかったファイルを削除します。つまり、デフォルトの動作では、ファイルのatime
を調べて、最近使用されたかどうかを評価します。
http://linux.die.net/man/8/tmpwatch
他のディストリビューション(およびインストール)では、/ tmpがtmpfsとしてマウントされている場合があります。これは、メモリ内ファイルシステムです。これは起動時にクリアされます。
私が使用しているUbuntu 11.10では、/etc/init/mounted-tmp.conf
に pstart スクリプトがあります。それの始まりはこれを言います:
# 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
セットがあり、これは上記の初期化スクリプトで最後に2つのfind
コマンドをフィードするために使用されます-基本的にファイルの削除を時間に基づいて制御します(変更された、変更、アクセス)。
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番目の引数は、最後にアクセスした時刻の後に待機する時間です。最後の引数は調べるディレクトリです。
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
を参照してください。
OpenSUSE 13.2では、クリア動作はsysconfigの以下の変数で制御できました。
MAX_DAYS_IN_TMP
MAX_DAYS_IN_LONG_TMP
TMP_DIRS_TO_CLEAR
LONG_TMP_DIRS_TO_CLEAR
OWNER_TO_KEEP_IN_TMP
CLEAR_TMP_DIRS_AT_BOOTUP
これらの変数は次のように変更できます(各変数の使用法もそこにあります)
/etc/sysconfig/cron
ファイルをコマンドラインで手動で。それを制御する素敵な一般的な方法はさらに良いでしょう! (「朝の3時に毎日、60日より前の/ tmpファイルをすべて削除しますが、再起動時にディレクトリをクリアしないでください」のようなもの)
起動時に消去したくないSorta-tempyファイルは/ var/tmpにあります
それはそれのためのものです:-)