星期三, 六月 24, 2009

linux系统中tmp目录下的子目录无辜消失


系统中有一个程序,不点名了,它在运行时使用到/tmp目录下的一个子目录,最近发现经常会无辜找不到该目录,导致报错,导致工作异常。


周一认真检查了一下,发现是linux特色的一个东西。


原因:操作系统每天都会执行一个程序,该程序会自动将一些所谓垃圾文件清理掉,我们所需要的那个目录被河蟹了。


more /etc/crontab里边包含一行


2 4 * * * root run-parts /etc/cron.daily 注:表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本;


其中有一个tmpwatch程序,会自动把/tmp目录下的过期文件和目录删除掉。可以通过修改该文件的方式,把该目录作例外处理。

more /etc/cron.daily/tmpwatch


/usr/sbin/tmpwatch -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix


-x /tmp/.ICE-unix -x /tmp/.Test-unix 240 /tmp


/usr/sbin/tmpwatch 720 /var/tmp


for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do


if [ -d "$d" ]; then


/usr/sbin/tmpwatch -f 720 "$d"


fi


done



没有评论: