如何在 tmpwatch 路径中使用通配符

如何在 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

我想从 tmpwatch 中排除以“hadoop”开头的目录。因此,我执行以下命令

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

似乎没有什么效果。我想从 tmpwatch 中排除以“hadoop”开头的目录。

我正在使用tmpwatch 2.9.7版本,看看是否有任何区别。

我想知道如何在当前版本的 tmpwatch 上执行此操作。下面的答案表明我可以使用-X option in the upgraded version of tmpwatch,但我当前版本中没有此选项。

答案1

升级(或从源代码编译)是一个选项吗?不知道哪个版本首先添加了此选项;我的(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.

编辑:旧版本的暴力破解可能类似于(使用 shell 通配符和printf反引号或类似符号来生成-x ...参数):

tmpwatch -tmf 8 /tmp `printf -- "-x %s " /tmp/hadoop*/`

注意:printf格式字符串中的尾随空格是必需的。并且如所写,它不排除hadoop*子目录。

相关内容