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.