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

/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スクリプト内の時間指定を編集すれば、好みの間隔で自動削除できるということらしいです。

Last update: 2017.08.31 (木)