私はさまざまなファイルをに入れようとしていますが/tmp
、それらを削除する規則について疑問に思いましたか?
ディストリビューションごとに異なることを想像していますが、特にUbuntuとFedoraのデスクトップバージョンに興味があります。
しかし、それを見つける良い一般的な方法は素晴らしいことです。
さらに良いのは、それを制御する良い一般的な方法です!(「毎日午前3時、/tmp
60日より古いファイルはすべて削除しますが、再起動時にディレクトリをクリアしないでください」など)
私はさまざまなファイルをに入れようとしていますが/tmp
、それらを削除する規則について疑問に思いましたか?
ディストリビューションごとに異なることを想像していますが、特にUbuntuとFedoraのデスクトップバージョンに興味があります。
しかし、それを見つける良い一般的な方法は素晴らしいことです。
さらに良いのは、それを制御する良い一般的な方法です!(「毎日午前3時、/tmp
60日より古いファイルはすべて削除しますが、再起動時にディレクトリをクリアしないでください」など)
回答:
それはディストリビューションに依存します。一部のシステムでは、起動時にのみ削除され、他のシステムではcronジョブが実行され、n時間より古いアイテムが削除されます。
/etc/default/rcS
)。/etc/cron.daily/tmpwatch
; RHEL7とsystemdでRedHatに似ていて/usr/lib/tmpfiles.d/tmp.conf
、で呼び出され、で呼び出されますsystemd-tmpfiles-clean.service
)。/etc/conf.d/bootmisc
。systemd-tmpfiles-clean.service
ます。
tmpreaper
パッケージを検討できます。これは、フォーク版ですtmpwatch
。
cat: /etc/default/rcS: No such file or directory
CentOS(およびFedoraを想定)では、/ etc / cron.dailyと呼ばれるジョブがありtmpwatch
ます。これが実行/usr/sbin/tmpwatch
され、指定された時間内にアクセスされなかったファイルが削除されます。つまり、デフォルトの動作ではatime
、ファイルが最近使用されたかどうかを評価します。
http://linux.die.net/man/8/tmpwatch
他のディストリビューション(およびインストール済み環境)では、/ tmpがtmpfsとしてマウントされる場合があります。これは、メモリ内ファイルシステムです。これはブート時にクリアされます。
yum install tmpwatch
sudo find /tmp -type f -atime +10 -delete
10日間アクセスされていないtmpファイルを削除します。注意して使用してください
私が使用しているUbuntu 11.10では、にスタートアップスクリプトがあり/etc/init/mounted-tmp.conf
ます。それの始まりはこれを言います:
# 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スクリプトで使用され、設定されfind
、その端部にコマンドを-基本的に、その時間に基づいてファイルの削除を制御する(変性変化、アクセス)。
RHEL 6.2では、10日間アクセスされなかった場合、/ tmp内のファイルは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
コマンドラインでファイルを手動で編集します。