tmpwatch何时确切清除我放在/ tmp中的文件?


14

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

第5行中读取的部分-X '/tmp/hsperfdata_*' 10d /tmp使我相信,我放置在/ tmp /中的文件将保留10天(假设它们在删除过程中没有被锁定,或者目录已安装在tmpfs文件系统上)。

那是对的吗?

Answers:


8

在CentOS 6上,似乎tmpwatch是基于删除文件的最后一次访问决定。如果已经超过10天(10d),则会在tmpwatch运行时将其删除。

tmpwatch手册页:

    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.

同样在手册页中:

    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.

6

在RHEL7 / CENTOS7上,有一个每天运行的systemd目标:(systemd-tmpfiles-clean.timer以替换/etc/cron.daily/tmpwatch)。默认值是OnBootSec=15minOnUnitActiveSec=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.

“开始清除”实际上是指“完成”。


tmpwatch具有很好的使用能力fuser。系统版本可以做到吗?
CMCDragonkai

2
@ CMCDragonkai,2015年4月,Lennart Poettering(SystemD开发人员)在systemd-devel邮件列表上说“我们不支持[..]通过/ proc进行迭代太糟糕了。[..]我们可能会考虑使用[否则]”,然后他补充说:定期检查[..]应该足够。您有没有这样的情况?”
富兰克林·皮亚特

是的,我问了这个问题。
CMCDragonkai

1
@CMCDragonkai,我在邮件列表上引用了Lennart Poettering。回复他(在列表中)!
富兰克林·皮亚特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.