如果 /tmp 中的文件/目录长时间没有被访问,它们可能会被自动删除。
“tmpwatch”清理 /tmp 或者其他临时目录的内容。
在大多数情况下,tmpwatch 删除文件可以安全地忽略,因为应该从 /tmp 中删除未使用的文件以释放文件系统空间,这样包含 /tmp 的文件系统不会随着时间的推移而填满。
但是,如果我们出于某种原因强烈需要禁用此功能,尽管 tmpwatch 在确保 /tmp 不会导致文件系统填满方面很重要,但可以通过卸载 tmpwatch:
# rpm -e tmpwatch
或者,移动/删除 /etc/cron.daily/tmpwatch 文件,以防无法删除 tmpwatch 的 rpm 包,如下所示:
# rpm -e tmpwatch LANG=C rpm -e tmpwatch error: Failed dependencies: tmpwatch is needed by (installed) tetex-3.0-33.15.el5_8.1.x86_64 tmpwatch is needed by (installed) cups-1.3.7-32.el5_11.x86_64 #
清除 /tmp 中未访问的文件是“tmpwatch”包的默认功能,它提供了一个 cron 作业 /etc/cron.daily/tmpwatch。
这是 crond 每天踢的一个 shell 脚本,它检查 /tmp、/var/tmp 和 /var/ 中的几个目录,并删除长时间未访问的文件/目录。
例如,CentOS/RHEL 5 上的 /etc/cron.daily/tmpwatch 如下所示:
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_*' 240 /tmp /usr/sbin/tmpwatch "$flags" 720 /var/tmp for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do if [ -d "$d" ]; then /usr/sbin/tmpwatch "$flags" -f 720 "$d" fi done
这将删除 240 或者 720 小时(= 10 或者 30 天)未访问的文件/目录。
CentOS/RHEL 6 上的 /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_*' -X '/tmp/.hdb*lock' -X '/tmp/.sapstartsrv*.log' \ -X '/tmp/pymp-*' 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
这将删除 10 或者 30 天未访问的文件/目录。
日期:2020-09-17 00:13:05 来源:oir作者:oir