Я настраиваю очистку tmp на CentOS 7. документы для tmpfiles мне немного непонятно, когда я объясняю разницу между X
и x
варианты в tmp.conf
. Разница в соответствии с документами заключается в том, что с X
вариант
в отличие
x
, этот параметр не будет исключать содержимое, если путь - это каталог, а только сам каталог.
Я не знаю, как это интерпретировать.
В основном у меня есть каталог, который живет в /tmp
и который я не хотите удалить (включая его содержимое). Для этого достаточно добавить строку
x /tmp/myspecialdir
к /usr/lib/tmpfiles.d/tmp.conf
?
Я тоже нашел это очень запутанным. Вот небольшой пример. Я думаю, что x по сравнению с 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
.
Я бы посоветовал проверить настройки, прежде чем устанавливать их. Страница руководства могла бы быть немного более понятной.