方法 2 - 禁用 tmpwatch cron 条目
在某些情况下,我们可能无法删除 tmpwatch 包,因为它具有依赖性。
我们会收到如下所示的错误:
# 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
或者,我们也可以移动或者删除 /etc/cron.daily/tmpwatch 文件,负责安排从 /var/tmp 和 /tmp/directories 中删除文件。
# mv /etc/cron.daily/tmpwatch /other/location/tmpwatch.bkp
或者
# rm /etc/cron.daily/tmpwatch
如果 /tmp 中的文件/目录长时间没有被访问,它们可能会被自动删除。
“tmpwatch”清除/tmp 或者其他临时目录(如/var/tmp)的内容。
清理 /tmp 中未访问的文件是包“tmpwatch”的默认功能,它提供了一个 cron 作业 /etc/cron.daily/tmpwatch 。
这是 crond 每天踢的一个 shell 脚本,它检查 /tmp、/var/tmp 和 /var/ 中的几个目录,并删除长时间未访问的文件/目录。
例如,CentOS/RHEL 5 上的示例配置文件 /etc/cron.daily/tmpwatch 如下所示:
# cat /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 小时(/tmp 为 10 天)或者 720 小时(/var/tmp 为 30 天)未访问的文件/目录。
CentOS/RHEL 6 上的示例配置文件 /etc/cron.daily/tmpwatch 如下所示:
# cat /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_*' -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 (/tmp) 或者 30(/var/tmp) 天未访问的文件/目录。
在大多数情况下,tmpwatch 删除文件可以安全地忽略,因为应该从 /tmp 中删除未使用的文件以释放文件系统空间,这样包含 /tmp 的文件系统不会随着时间的推移而填满。
但是,如果我们出于某种原因强烈需要禁用此功能,尽管 tmpwatch 在确保 /tmp 不会导致文件系统填满方面很重要,我们可以使用下面描述的任何一种方法。
方法 1 - 删除 tmpwatch 包
最简单的方法是删除 tmpwatch 包本身:
# rpm -e tmpwatch
或者
# yum remove tmpwatch