systemd-tmpfiles 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

systemd-tmpfiles, systemd-tmpfiles-setup.service, systemd-tmpfiles-setup-dev.service, systemd-tmpfiles-clean.service, systemd-tmpfiles-clean.timer — 创建、删除、清理 易变文件与临时文件

大纲

systemd-tmpfiles [OPTIONS...] [CONFIGFILE...]

系统单元:

systemd-tmpfiles-setup.service
systemd-tmpfiles-setup-dev.service
systemd-tmpfiles-clean.service
systemd-tmpfiles-clean.timer

用户单元:

systemd-tmpfiles-setup.service
systemd-tmpfiles-clean.service
systemd-tmpfiles-clean.timer

描述

systemd-tmpfiles 根据配置文件 tmpfiles.d(5) 的指引,创建、删除、清理 易变文件与临时文件。

若未指定任何 CONFIGFILE 参数,则表示使用在所有标准目录中找到的全部配置文件。 若使用 --replace=PATH 选项, 则表示使用 CONFIGFILE 文件代替 PATH 文件,否则表示仅使用 CONFIGFILE 文件。 CONFIGFILE 必须是下列之一:(1)配置文件的绝对路径; (2)特殊值 "-" 表示仅从标准输入读取配置; (3)不含路径的纯文件名(basename), 表示在所有 tmpfiles.d(5) 配置目录中搜索名称匹配的文件,并在匹配的文件中使用 优先级最高的那一个。

选项

能够识别的命令行选项如下:

--create

创建或写入 所有 f, F, w, d, D, v, p, L, c, b, m 标记的文件与目录。 所有 z, Z, t, T, a, A 标记的文件与目录都将被设置相应的 属主/属组、权限、安全标签。

--clean

清理 所有过期的 文件与目录

--remove

删除 D, R 标记的目录中的内容,以及 r, R 标记的目录与文件自身。

--user

执行"用户"配置,也就是用户配置目录中的 tmpfiles.d 配置文件。

--boot

也执行带有"!"标记的行。

--prefix=path

仅作用于 带有特定前缀的路径, 可以多次使用此选项。

--exclude-prefix=path

忽略 带有特定前缀的路径, 可以多次使用此选项。

--root=root

指定一个"根目录",包括配置文件在内的所有路径都将加上 root 前缀。

注意,此选项不会改变配置文件中设置的用户与组的解析方法。 无论是否使用此选项,用户与组都始终根据主机上的用户数据库进行解析, 而不会使用 任何存储在指定"根目录"下的用户数据库。

--replace=PATH

如果使用了此选项,那么必须至少指定一个 CONFIGFILE 文件。所有位于 tmpfiles.d(5) 目录中的配置文件都会被读取,但 PATH 所对应的配置文件 将会被 CONFIGFILE 文件所代替(优先级也相同)。

当软件包安装脚本运行时, 属于该软件包的文件在磁盘上尚不存在, 但是管理员针对该软件包定制的配置文件可能已经存在(并且拥有更高的优先级)。 在这种情况下,可以使用此选项模拟替补缺失的文件。

--cat-config

显示全部配置文件的内容。 在显示每个配置文件内容之前,首先以注释的形式显示该配置文件的文件名。

--no-pager

不将程序的输出内容管道(pipe)给分页程序。

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

可以同时使用 --create, --clean, --remove 选项(在这种情况下,按照先清理和删除旧文件、后创建新文件的顺序操作)。 例如,可以在系统启动的过程中使用下面的命令, 实现在删除旧文件的同时又创建新文件:

systemd-tmpfiles --remove --create

非特权 --cleanup 操作

systemd-tmpfiles 尽量避免更改目录的访问时间(atime)与修改时间(mtime), 这需要 CAP_FOWNER 特权。 当以非root运行时, 检查目录的内容会更新目录的访问时间(atime), 这可能会妨碍正确清理目录的内容。

退出状态

返回值为 0 表示成功。如果某些配置行在语法上是无效的(语法错误、缺少参数……), 那么这些语法错误的行必须被忽略,但是如果没有发生其他错误,那么返回 65(EX_DATAERR from /usr/include/sysexits.h)。如果某些配置行在语法上是正确的, 但不能正确执行(缺少权限,在不存在的目录中创建文件、 向 /sys/ 写入无效内容…),那么返回 73 (EX_CANTCREAT from /usr/include/sysexits.h)。 否则,返回 1 (EXIT_FAILURE from /usr/include/stdlib.h)

参见

systemd(1), tmpfiles.d(5)