由于是使用的阿里云的小配置服务器,所以不希望tmp下存储太多东西;另外一个重要原因是最近发现一些采矿的脚本会直接放到tmp目录下,所以一定要减少tmp下文件的存放时间。
/tmp目录产生大量小文件,使用rm等均无法删除(”-bash: /bin/rm: Argument list too long“),这里关注下tmpwatch,系统为保证tmp目录不被撑爆,默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。
功能:
tmpwatch命令用于删除暂存的临时文件,以节省磁盘空间。该命令的工作前提是将不常用的文件集中到一个目录中,然后利用该命令对该目录进行时间设置,这样tmpwatch命令将会自动检测该目录下的文件是否过期,若过期将自动删除。
注:该命令需要root权限或同等权限,普通用户下会提示找不到命令
yum install tmpwatch.x86_64
安装后会在/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_*’ -X ‘/tmp/.hdb*lock’ -X ‘/tmp/.sapstartsrv*.log’ \
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参数说明:
-u,–atime基于访问时间来删除文件,默认的。
-m,–mtime基于修改时间来删除文件。
-c,–ctime基于创建时间来删除文件,对于目录,基于mtime。
-M,–dirmtime删除目录基于目录的修改时间而不是访问时间。
-a,–all删除所有的文件类型,不只是普通文件,符号链接和目录。
-d,–nodirs不尝试删除目录,即使是空目录。
-d,–nosymlinks不尝试删除符号链接。
-f,–force强制删除。
-q,–quiet只报告错误信息。
-s,–fuser如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t,–test仅作测试,并不真的删除文件或目录。
-U,–exclude-user=user不删除属于谁的文件。
-v,–verbose打印详细信息。
-x,–exclude=path排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X,–exclude-pattern=pattern排除某规则下的路径。
强制删除超过3天未使用的所有文件
#tmpwatch -avf 72 /tmp/
修改tmpwatch文件中的时间设置:
编辑配置文件:vim /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
上面这句话:/usr/sbin/tmpwatch “$flags” -f 30d “$d”,其中 30d 表示 30 天表示要备删除的周期文件,该值最低为 1。
一般数据建议不要放在这个目录下,以免被系统误删
最后记得:service crond restart
如需转载请注明: 转载自26点的博客
本文链接地址: centos下修改tmpwatch定时删除tmp下文件的
转载请注明:26点的博客 » centos下修改tmpwatch定时删除tmp下文件的