web-dev-qa-db-ja.com

tmpwatchが/ tmpに置いたファイルを正確にクリアするのはいつですか?

CentOS 6.x

/ tmp /に配置したファイルが正確に削除されると、混乱します。

/etc/cron.daily/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
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
    if [ -d "$d" ]; then
        /usr/sbin/tmpwatch "$flags" -f 30d "$d"
    fi
done

-X '/tmp/hsperfdata_*' 10d /tmpを読み取る5行目のセクションは、/ tmp /に配置したファイルが10日間残っていると信じさせます(もちろん、削除中にファイルがロックされていないか、ディレクトリがtmpfsファイルシステムにマウントされている場合) )。

あれは正しいですか?

14
Mike B

CentOS 6では、tmpwatchは、ファイルが最後にアクセスされたとき(一度に)に削除するという決定に基づいているようです。 10日(10日)以上経過している場合は、tmpwatchの実行時に削除されます。

tmpwatch manページから:

    By  default,  tmpwatch  dates  files  by their atime (access time), not 
    their mtime (modification time). If files aren't being removed when 
    ls -l implies they should be, use ls -u to examine their atime to see if 
    that explains the problem.

また、manページから:

    The time parameter defines the threshold for removing files.  If the
    file has not been accessed for time, the file is removed.  The time 
    argument is a number with an optional single-character suffix specifying 
    the units: m for minutes, h for hours, d for days.  If no  suffix  is 
    specified, time is in hours.
8
slm

RHEL7/CENTOS7には、毎日実行されるsystemdターゲットがあります:systemd-tmpfiles-clean.timer (交換する /etc/cron.daily/tmpwatch)。デフォルト値は両方ともOnBootSec=15minおよびOnUnitActiveSec=1d。引用 systemd.timer マンページ:

OnBootSec =は、マシンがいつ起動されたかに関連するタイマーを定義します。

OnUnitActiveSec =は、タイマーがアクティブにしているユニットが最後にアクティブになったときを基準にタイマーを定義します。

そのため、/ tmpは毎日、おおよそシステムのブート時にクリーンアップされるようになったので、時刻は未定義です。大規模な展開では、すべての仮想マシンが同時にクリーンアップを実行するわけではありません、ニース。

履歴については、次を実行:

$ journalctl  -u systemd-tmpfiles-clean
Mar 12 21:44:17 c7.klabs.be systemd[1]: Starting Cleanup of Temporary Directories...
Mar 12 21:44:18 c7.klabs.be systemd[1]: Started Cleanup of Temporary Directories.

「クリーンアップ開始」は実際には「完全」を意味します。

6
Franklin Piat