Подстановочный знак, похоже, не работает в пути исключения, предоставленном tmpwatch.
У меня следующая структура каталога внутри /tmp
drwxr-xr-x 2 vrisbud developers 4096 May 17 15:36 AssetEnumeratorTest
drwxr-xr-x 2 vrisbud developers 4096 May 17 15:37 EnumeratorReducerTest
drwxr-xr-x 2 reco reco 4096 May 30 14:42 hadoop-reco
drwxr-xr-x 3 vrisbud developers 4096 May 17 15:30 hadoop-vrisbud
drwxr-xr-x 2 reco reco 4096 May 31 08:10 hsperfdata_reco
drwxr-xr-x 2 root root 4096 May 26 13:30 hsperfdata_root
Я хочу исключить каталог, начинающийся с 'hadoop', из tmpwatch. Итак, я выполняю следующую команду
tmpwatch -tmf 8 -x /tmp/hadoop* /tmp
Он показывает, что он удалит каталоги hadoop-reco и hadoop-vrisbud. (Я просто тестирую его, поэтому к нему добавлен флаг -t.)
Я тоже пробовал
tmpwatch -tmf 8 -x '/tmp/hadoop*' /tmp
tmpwatch -tmf 8 -x '/tmp/hadoop.*' /tmp
Кажется, ничего не работает. Я хочу исключить каталоги, начинающиеся с 'hadoop' из tmpwatch.
Я использую tmpwatch 2.9.7
версия, если это имеет значение.
Я хотел бы знать, как я могу это сделать в моей текущей версии tmpwatch. Как ответ ниже указывает, что я могу использовать -X option in the upgraded version of tmpwatch
, но у меня нет этой опции в моей текущей версии.
Возможно ли обновление (или компиляция из исходного кода)? Не знаю, какая версия первой добавила эту опцию; моя (centos 6.6) справочная страница для tmpwatch 2.9.16
имеет:
-X, --exclude-pattern=pattern
Skip paths matching pattern; if a directory matches pattern,
all files contained in it are skipped too. pattern must match
an absolute path that contains no symbolic links.
Изменить: грубая сила для более старых версий может быть похожей (используйте подстановку оболочки и printf
в обратных кавычках или аналогичных для создания -x ...
аргументы):
tmpwatch -tmf 8 /tmp `printf -- "-x %s " /tmp/hadoop*/`
Примечание. Конечный пробел в printf
Строка формата обязательна. И как написано это не исключает hadoop*
в подкаталогах.