Назад | Перейти на главную страницу

Как использовать подстановочный знак в пути tmpwatch

Подстановочный знак, похоже, не работает в пути исключения, предоставленном 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* в подкаталогах.