今天实践Linux管理临时文件tmpfiles,避免长期运行的系统不会被临时文件占满。
本文的实验平台为腾讯云服务器CentOS 7.6 64bit 。
1、systemd-tmpfiles
Linux产生大量的临时文件和目录,例如/tmp、/run 。RHEL7或者CentOS7中,systemd提供了一个结构化的可配置方法来管理临时文件和目录,即systemd-tmpfiles,可以创建、删除和管理临时文件的服务。旧版本系统使用watchtmp+cron来共同实现管理临时文件。
systemd启动后,其中一个启动的服务单元是systemd-tmpfiles-setup,该服务的命令为:systemd-tmpfiles --creat/--clean *conf , *conf是可选的,不写默认是使用所有配置文件。
2、配置文件,优先级从上到下。
/etc/tmpfiles.d/*conf ,管理员可修改的配置文件
/run/tmpfiles.d/*conf ,daemon应用程序自己管理的配置文件,不建议更改
/usr/lib/tmpfiles.d/*conf,rpm软件安装时,自动更新的配置文件,不能更改
先来看一下配置文件中的具体内容, /usr/lib/tmpfiles.d/rpm.conf:
r /var/lib/rpm/__db.*
说明配置信息的意义可以使用帮助文档man 5 tmpfiles.d来查看配置文件信息,
type代表类型,path代表路径,mode代表权限,UID用户, GID用户组,AGE生存时间,Argument代表附加参数。
查找man手册,r代表Remove a file or directory if it exists.其他未定义。
3、定期清理timer
systemd定时器单元会按固定间隔调用systemd-tmpfiles --clean 。
systemctl status systemd-tmpfiles-clean.timer 查看timer状态。
systemctl cat systemd-tmpfiles-clean.timer 查看timer具体内容,也可以进入/usr/lib/systemd/system目录后使用more systemd-tmpfiles-clean.timer 来查看。
从timer具体内容可以知道系统启动15分钟后和每天会运行一次systemd-tmpfiles --clean 。
那么timer定时运行的是哪些服务呢? 是在systemd-tmpfiles-clean.service里面定义的:
systemctl cat systemd-tmpfiles-clean.service可以查看。
网友评论