本文介绍使用systemd-tmpfiles以在Linux操作系统中自动清除未使用的临时文件。在大多数现代Linux系统中,需要大量临时文件和目录才能进行最佳处理,如果不经常清理,它们可能会累积使用更多的存储空间,因此,有必要清除旧文件,以免它们占用磁盘空间。另外,一些用户/应用程序将使用/tmp目录来保存临时数据,而其他用户/应用程序将使用特定的位置,例如守护进程和/run下的用户特定目录,文件仅存在于内存中,如果系统重新启动或断电,这些存储的所有内容都将消失。
在Linux中自动清除未使用的临时文件 在Red Hat Enterprise Linux 7和更高版本中,包含了一个称为systemd-tmpfiles的新工具,该工具提供了一种结构化且可配置的方法来管理临时目录和文件。 可以使用以下命令检查启动服务: $ systemctl status systemd-tmpfiles-*
启动systemd-tmpfiles-setup服务单元时,它将运行systemd-tmpfiles –create –remove命令,该命令从以下位置检查配置文件: /usr/lib/tmpfiles.d/.conf /run/tmpfiles.d/.conf /etc/tmpfiles.d/*.conf 如果上述配置文件中有标记为删除的文件和目录,则会将其删除,对于标记为创建的文件和目录,必要时使用正确的权限创建它们。 技术延伸:用find、rm命令清理Linux临时文件夹及检查Linux临时文件夹何时已满。
使用Systemd计时器清除临时文件 一个名为systemd-tmpfiles-clean.timer的systemd计时器单元会按固定的时间间隔触发systemd-tmpfiles-clean.service,然后执行systemd-tmpfiles -clean命令。 将在[Timer]选项中指定启动服务的频率,请参见下面的示例: $ cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. [Unit] Description=Daily Cleanup of Temporary Directories Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) [Timer] OnBootSec=15min OnUnitActiveSec=1d 在上面的示例中,系统启动后15分钟将触发systemd-tmpfiles-clean.service,其他任何触发都在上次服务触发后24小时发生,可以根据自己的情况调整值。 如果进行更改,请确保重新加载服务: sudo systemctl daemon-reload sudo systemctl enable --now systemd-tmpfiles-clean.timer
手动清理临时文件 让我们配置systemd-tmpfiles来清理/mytmp目录,这将确保目录不包含最近3天未使用过的文件。 可以复制示例配置/usr/lib/tmpfiles.d/tmp.conf文件并进行更新。 如下编辑文件: $ sudo vim /etc/tmpfiles.d/mytmp.conf See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override q /mytmp 1777 root root 3d 如果要确保拥有正确所有权的直接性,请创建如下配置: d /run/mytmp 0700 root root 60s 必须清除该目录中最近60秒钟内未使用的任何文件。 创建文件后,使用以下命令确保文件包含适当的配置: sudo systemd-tmpfiles --create /etc/tmpfiles.d/mytmp.conf 如果在输出中看不到任何错误,则表明配置设置正确,可以随时使用以下命令调用手动清理: systemd-tmpfiles --clean /etc/tmpfiles.d/mytmp.conf
相关主题 |