RHEL和Ubuntu清理/tmp目录的机制

某天,我在Ubuntu的/tmp目录下呕了150+行代码,第二天兴高采烈开机打算继续往下写时,发现...文件消失了!
为了让这段代码死得明明白白,稍微看了下RHEL和Ubuntu是怎样自动清理/tmp目录的。

注: 除非文件真的一点都不重要,否则别放在/tmp目录下啊!

RHEL6

在RHEL6中,系统每天会自动检查/tmp目录下的文件,如果超过30天没有Access/Write/Modify(atime,ctime,mtime,取三个时间的最大值,如果这个最大值超过30天则删除)。
这是由一个Daily Cron Job来完成的,脚本在 /etc/cron.daily/tmpwatch 。

[root@host ~]# cat /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

脚本通过调用一个tmpwatch的程序来执行清理工作。
继续阅读“RHEL和Ubuntu清理/tmp目录的机制”