Tips記事
» 2002年12月11日 20時47分 UPDATE

/tmp/ディレクトリ下のファイルはいつ削除される?

[木田佳克,ITmedia]

 /tmp/ディレクトリ下は、テンポラリ領域としてファイルの解凍や一時的に利用するファイルが書き出される。常時稼働させている状態でしばらくの日数を経て/tmp/下を見ると、以前あったファイルが無くなっている場合がある。これはどのようなタイミングで削除されたのだろうか?

 これは、1日1回実行されるcronスケジュールで実行されるスクリプト「tmpwatch」から実行されるコマンド「tmpwatch」によって判断されている。

# file /usr/sbin/tmpwatch
/usr/sbin/tmpwatch: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped

 その条件を確認するためには、cronスケジュールの該当するスクリプト「tmpwatch」を覗いてみればよい(注:前述の/usr/sbin/tmpwatchとは別ファイル)。

# ls /etc/cron.daily/
00-logwatch  logrotate   rpm    tetex.cron
0anacron    makewhatis.cron slocate.cron  tmpwatch
# cat /etc/cron.daily/tmpwatch
/usr/sbin/tmpwatch 240 /tmp
/usr/sbin/tmpwatch 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/\
cat?,local/cat?}; do
    if [ -d "$d" ]; then
        /usr/sbin/tmpwatch -f 720 $d
    fi
done

 tmpwatchスクリプト内では、/usr/sbin/tmpwatchによる実行オプションが各種指定されている。それぞれの内容は次の通りだ。

・/usr/sbin/tmpwatch 240 /tmp
 /tmp/下で240時間アクセスが無いファイルを削除する

・/usr/sbin/tmpwatch 720 /var/tmp
 /var/tmp/下で720時間アクセスが無いファイルを削除する

・/var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}
 /var/cache/man/、/var/cache/catman/下で720時間アクセスがないファイルを削除する

 ここまでで明らかなように、/etc/cron.daily/tmpwatchスクリプト内の時間指定を編集すれば、好みの間隔で自動削除させることも可能だ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ