一、背景
在正式环境存放按照日期存放的数据被清理掉了,于是了解到在服务器上有用到tmpwatch命令进行定时清理的机制,所以将这个命令进行学习和整理。
二、tmpwatch工作原理
tmpwatch命令用于删除暂存的临时文件,以节省磁盘空间。该命令的工作前提是将不常用的文件集中到一个目录中,然后利用该命令对该目录进行时间设置,这样tmpwatch命令将会自动检测该目录下的文件是否过期,若过期将自动删除。
三、用法
tmpwatch [-afqv][--test][超期时间][目录...]
在服务器上安装tmpwatch后会生成/etc/cron.daily/tmpwatch文件,在文件中增加命令即可实现定时清除
(注:
1.每天只会执行1次,所以不能实现每天多次进行清理
2.超时时间默认以小时为单位,想删除超过3天的文件可以使用 72 或者3d这两种写法
3.--test表示不执行删除操作,而是打印出来
)
四、参数详解
-u,--atime基于访问时间来删除文件,默认的。
-m,--mtime基于修改时间来删除文件。
-c,--ctime基于创建时间来删除文件,对于目录,基于mtime。
-M,--dirmtime删除目录基于目录的修改时间而不是访问时间。
-a,--all删除所有的文件类型,不只是普通文件,符号链接和目录。
-d,--nodirs不删除文件里的子目录,但是子目录里面的文件还是会被删除。
-f,--force强制删除。
-q,--quiet只报告错误信息。
-s,--fuser如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t,--test仅作测试,并不真的删除文件或目录。
-U,--exclude-user=user不删除属于谁的文件。
-v,--verbose打印详细信息。
-x,--exclude=path排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X,--exclude-pattern=pattern排除某规则下的路径。
五、与rm的对比
1.rm可能会引起程序僵死(在网上看到的)
2.tmpwatch在查找和过滤方面比较方便