通配符似乎在提供给 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*
子目录。