关于Linux系统中/tmp目录的清除问题
相当悲剧的问题是,之前保存在/tmp目录中的一些数据丢了。现在发现已经是第二次发生了,前一次以为是其他人误操作删除的,今天才发现这个和系统有关系。完全是因为自己不懂Linux系统管理啊 。
系统使用Redhat6.1,估计其他系统也会有。系统会定时的将/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
其实是调用指令tmpwatch来实现清除文件的功能,看语法知道,30day是清空的执行时间,我们可以尝试修改这个数据。而上面的计划任务文件/etc/cron.daily/tmpwatch是每天启动都会运行一次的。不运行的就不执行。/tmp目录中不用的数据是在开机的时候清除的。
如果不想让tmp目录中的数据被清除呢? 我目前是如下处理的。
将上面的30d改成0d。看起来效果还行吧。