我正在 CentOS 7 上配置 tmp 清理。文档X
对于 tmpfiles 来说,在解释和x
选项之间的区别时,我有点不清楚tmp.conf
。根据文档,区别在于X
使用选项,
与 不同
x
,如果路径是目录,此参数将不会排除内容,而只会排除目录本身。
我不确定该如何解释这一点。
基本上我有一个目录,它存在于其中/tmp
,并且我不想要删除(包括其内容)。为此,只需添加一行
x /tmp/myspecialdir
到/usr/lib/tmpfiles.d/tmp.conf
?
答案1
我也觉得这很令人困惑。下面是一个简单的例子。我认为,如果您在特定目录中有一个深层树,并且您想删除部分目录而不是所有目录,那么 x versus X 会很有用。
这是我的 exclude.conf:
root# cat /etc/tmpfiles.d/exclude.conf
d /tmp/testdir 0755 root root 1s
x /tmp/testdir/*
现在,我创建一些目录:
# mkdir /tmp/testdir/a ; mkdir /tmp/testdir/b; mkdir /tmp/testdir/ab
# ls -lrt /tmp/testdir/
total 0
drwxr-xr-x. 2 root root 6 Sep 1 12:55 a
drwxr-xr-x. 2 root root 6 Sep 1 12:55 b
drwxr-xr-x. 2 root root 6 Sep 1 12:55 ab
运行清洁
#systemd-tmpfiles --clean exclude.conf
查看
# ls -lrt /tmp/testdir
total 0
drwxr-xr-x. 2 root root 6 Sep 1 12:55 a
drwxr-xr-x. 2 root root 6 Sep 1 12:55 b
drwxr-xr-x. 2 root root 6 Sep 1 12:55 ab
现在,如果执行X /tmp/testdir/*
,我会得到相同的结果。然后,如果我有x /tmp/testdir/b
,那么它会从清理中排除“b”目录。
#systemd-tmpfiles --clean exclude.conf
# ls -lrt /tmp/testdir/
total 0
drwxr-xr-x. 2 root root 6 Sep 1 12:55 b
此外,X /tmp/testdir/b
显示相同的行为。但是,X /tmp/testdir/
和x /tmp/testdir
将删除其中的所有子目录testdir
,但会保留testdir
。
我建议在设置之前先测试一下设置。手册页应该更清楚一些。