Linux systemd-tmpfiles 命令 - 专业的临时文件和目录管理工具
• 最后修改:2025-08-26 • 阅读量:220
systemd-tmpfiles
(英文:systemd temporary files manager) 命令是 Systemd 生态中的一个工具,它用来管理系统的临时文件或者临时目录。它与以前的工具如 tmpwatch
和 tmpreaper
相比,使用起来更加可靠,更加安全,同时接口形式统一。systemd-tmpfiles
支持创建配置文件,实现更加细化的临时文件的管理。
本教程将详细的介绍 systemd-tmpfiles
命令的功能,及其使用方法,能够使你对 systemd-tmpfiles
命令有一个详细的了解,方便你使用该工具来管理你的临时文件或目录。
systemd-tmpfiles 命令语法
如下给出 systemd-tmpfiles
命令的详细语法结构:
systemd-tmpfiles [选项] --create [配置文件]
systemd-tmpfiles [选项] --clean [配置文件]
systemd-tmpfiles [选项] --remove [配置文件]
语法结构中各部分的解释说明:
--create
:该选项用来根据指定的配置文件创建临时文件或临时目录--clean
:该选项用来根据指定的配置文件清理过期的临时文件或临时目录--remove
:该选项用来根据指定的配置文件删除所有临时文件或临时目录- [配置文件]:用来指定可选的配置文件(未指定配置文件时,使用系统默认的配置文件)
- [选项]:指定命令提供的可用的选项
默认配置文件的常用路径为:
/etc/tmpfiles.d/*.conf
:系统级的配置文件常用路径/run/tmpfiles.d/*.conf
:运行时临时配置文件的常用路径/usr/lib/tmpfiles.d/*.conf
:用户级的配置文件的常用路径
systemd-tmpfiles 命令使用示例
创建临时文件
可以使用系统的默认配置创建临时文件或者临时目录:
sudo systemd-tmpfiles --create
清理超过 7 天未访问的文件
使用如下命令清理 /tmp 目录中超过 7 天未访问的临时文件或者目录:
sudo systemd-tmpfiles --clean --age=7d /tmp
解释: --age=7d
:指定时间为 7
天,d
为 day
的首字母。
指定配置文件创建临时文件
可以指定一个配置文件如:/etc/tmpfiles.d/myconf.conf
创建临时文件,如下给出示例:
sudo systemd-tmpfiles --create /etc/tmpfiles.d/myconf.conf
测试配置而不实际运行
systemd-tmpfiles
命令像很多其他命令一样提供 --dry-run
选项来测试配置是否正常,而不会创建任何的临时文件或者临时目录:
sudo systemd-tmpfiles --dry-run --create /etc/tmpfiles.d/newconf.conf
systemd-tmpfiles 命令选项详解
如下给出 systemd-tmpfiles
命令选项的详细解释说明:
选项 | 说明 | 示例 |
---|---|---|
--create |
用于创建配置中指定的临时文件文件或者临时目录 | systemd-tmpfiles --create |
--clean |
用来根据指定的配置文件清理过期的临时文件或临时目录 | systemd-tmpfiles --clean |
--remove |
用来根据指定的配置文件删除所有临时文件或临时目录 | systemd-tmpfiles --remove |
--dry-run |
测试运行,但是不实际创建临时文件或者临时目录 | systemd-tmpfiles --dry-run |
--boot |
模拟启动环境 | |
--prefix=PATH |
指定要处理的文件路径 | --prefix=/var/tmp |
--exclude-prefix=PATH |
排除指定路径下的临时文件或者临时目录 | --exclude-prefix=/dev |
--age=AGE |
用来指定时间阈值,超过该指定时间的将被清理 | --age="1h 30min" |
--user |
处理用户级的临时文件 | |
-h |
显示帮助信息 | systemd-tmpfiles -h |
时间单位说明:
单位 | 说明 | 示例 |
---|---|---|
s |
秒,秒英文单词的字母 | 30s |
min |
分钟,分钟的缩写 | 15min |
h |
小时,英文单词的首字母 | 2h |
d |
天,day的首字母 | 7d |
w |
周,week的首字母 | 2w |
m |
月,month单词的首字母 | 1m |
y |
年,year单词的首字母 | 1y |
配置文件格式详解
配置文件一般由如下字段组成,示例形式如下:
# 类型 路径 权限 所有者 组 时长 参数
d /run/myapp 0755 appuser appgroup - -
常用类型代码有:
类型 | 功能 | 示例 |
---|---|---|
d |
创建目录 | d /run/myservice 0750 root root |
f |
创建文件 | f /var/tmp/lockfile 0644 root root |
F |
清空文件内容 | F /var/log/temp.log 0644 root root |
v |
创建子卷 (btrfs) | v /var/lib/docker 0755 root root |
L |
创建符号链接 | L /var/lock - - - ../run/lock |
r |
移除文件/目录 | r /tmp/.*.swp |
z |
安全目录(SELinux) | z /srv/web 0755 root root |
p |
命名管道 | p /run/myfifo 0644 root root |
systemd-tmpfiles 与相似工具对比
工具 | 特点 | 适用场景 |
---|---|---|
systemd-tmpfiles | 属于 systemd 系统的一部分,支持创建配置文件 | 现代 Linux 系统 (RHEL 8+, Debian 10+) |
tmpwatch | 仅具有基础的清理功能,在命令行中使用 | 传统 RHEL/CentOS 7 及更早版本 |
tmpreaper | 仅具有基本的清理功能,支持创建配置文件 | Debian/Ubuntu 系统 |
结语
本文全面的介绍了 systemd-tmpfiles
的语法结构及其功能,并给出了 systemd-tmpfiles
命令的具体使用示例,以及 systemd-tmpfiles
命令和其他命令之间的功能对比,相信你能够对 systemd-tmpfiles
命令有个基本的了解,并帮助你正确的使用 systemd-tmpfiles
命令创建临时文件或者临时目录。 systemd-tmpfiles
命令只要在 Linux 各发行版和 FreeBSD 系统中安装了 systemd,就可以使用。