Skip to content


tmpwatch 让 /tmp 目录下文件异常丢失

今天服务器上/tmp下的php上传目录upload又没了,不是第一次了,郁闷的很

google下后找到原因,原来是tmpwath干的好事。

cat /etc/cron.daily/tmpwatch
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

系统每天会用tmpwatch命令检查并删除 /tmp 下超过240小时未访问过的文件和目录

tmpwatch简介

功能说明:删除暂存文件。

语  法:tmpwatch [-afqv][–test][超期时间][目录…]

补充说明:执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算。

参  数:
 -a或–all  删除任何类型的文件。
 -f或–force  强制删除文件或目录,其效果类似rm指令的”-f”参数。
 -q或–quiet  不显示指令执行过程。
 -v或–verbose  详细显示指令执行过程。
 -test  仅作测试,并不真的删除文件或目录。

php.ini中设置

#临时文件的上传目录
upload_tmp_dir = “/tmp/upload”
#session 分采用分级目录
session.save_path = “1;/tmp/session”
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, “-“, “,”
session.hash_bits_per_character = 4

解决方法
-x 可以排除删除某些目录
-d 可以不删除空目录

/usr/sbin/tmpwatch -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix -x /tmp/session -x /tmp/upload 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

参考:
http://haka.sharera.com/blog/BlogTopic/21687.htm

http://linux.chinaunix.net/bbs/archiver/?tid-979112.html

Posted in Linux 命令, PHP, 技术.

Tagged with .


3 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. ttplay says

    学习, 不过,既然文件不是临时的,还是不要放tmp下好.

  2. alanbob says

    我改完tmpwatch配置文件后,tmp目录下的文件还是被删除,不知道什么原因。-x排除删除某些目录和240小时我都更改了。也没有好用。不知道还有别的什么文件需要更改还是需要重启什么服务,望博主指点。谢谢!

  3. C1G says

    改完保存就可以了,你的情况我无法判断,查查crontab吧



Some HTML is OK

or, reply to this post via trackback.