CentOS7的/tmp目录自动清理规则

CentOS6以下系统(含)使用watchtmp + cron来实现定时清理临时文件的效果,这点在CentOS7发生了变化。

在CentOS7下,系统使用systemd管理易变与临时文件,与之相关的系统服务有3个:

 相关的配置文件也有3个地方:

 /tmp目录的清理规则主要取决于/usr/lib/tmpfiles.d/tmp.conf文件的设定,默认的配置内容为:

 我们可以配置这个文件,比如你不想让系统自动清理/tmp下以tomcat开头的目录,那么增加下面这条内容到配置文件中即可:

CentOS6以下系统(含)使用watchtmp + cron来实现定时清理临时文件的效果,该目录下的脚本每天执行一次。

RHEL6 规则定义在 /etc/cron.daily/tmpwatch ; RHEL7 以及 RedHat-like with systemd 规则定义在 /usr/lib/tmpfiles.d/tmp.conf , 通过 systemd-tmpfiles-clean.service 服务调用 

 第一行相当于一个标记(参数)
第二行就是针对/tmp目录里面排除的目录
第三行,这是对这个/tmp目录的清理,下面的是针对其他目录的清理,就不说了。
/usr/sbin/tmpwatch "$flags" 30d /var/tmp

tmpwatch命令

关于tmpwatch命令的参数,不同版本可能有所不同

作用

删除一段时间没有被访问的文件。

参数

-u 按照文件的最后access时间,即最后访问时间为参考。默认选项。可通过ls -lu查看。
-m 按照文件的最后modified时间,即最后修改时间为参考。可通过ls -l查看。
-c 按照文件的-ctime时间做参考,ctime更新的条件为写入、更改属主、权限。可通过ls -lc查看。
-M 按照目录的修改时间来删除目录而不是访问时间。
-a 删除所有类型文件。包括目录和symbolic links
-d --nodirs 排除目录文件,即使是空目录。
-d --nosysmlinks 排除symbolic links类型文件。
-f 强制删除那些root没有写权限的文件。比如root的readonly文件
-q 只报告错误信息。
-x /PATH 排除特定目录,即不删除该子目录里的文件。
-U user_name 排除属于特定用户的文件,即不删除该用户的文件。
-v 显示删除过程。默认是不显示删除了什么文件,直接删除的。
-t 用于测试,并不真正删除文件,能显示出要删除文件的过程。
-d 不删除文件里的子目录,但是子目录里面的文件还是会被删除。
posted on 2023-02-21 18:08  小破孩楼主  阅读(2368)  评论(0编辑  收藏  举报