这篇文章上次修改于 498 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
Linux操作系统的/tmp目录保存临时文件,那么这个目录下的临时文件究竟会保存多久,何时被清理,通过什么方式(哪个服务)来维护清理工作呢?
手工清理
清理 /tmp 目录文件最简单和直接的方式是使用脚本命令清理N天前的临时文件(如果空间不足的话)find /tmp -type f -mtime +5 -exec rm -f {} \;清理5天前的文件。如果有程序不断写入/tmp目录下,则需要做轮转,这样才能使得文件的mtime保持确定时间,达到一定时间(如5天)被清理。
这个方法是应急处理,对于各个Linux发行版本,都有各自维护/tmp目录的设置方法
Red Hat / CentOS 和 tmpwatch
RHEL/CentOS 6使用tmpwatch维护临时文件删除
CentOS 6有一个tmpwatch默认会根据文件的最后访问时间atime来删除文件(不是根据mtime)。查看文件的atime可以通过 ls -u 来检查。
/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 /