通配符在提供给tmpwatch的排除path中似乎不起作用。
/tmp里面有下面的dir结构
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'开头的dir。 所以我正在执行以下命令
tmpwatch -tmf 8 -x /tmp/hadoop* /tmp
它显示它将删除“hadoop-reco”和“hadoop-vrisbud”目录。 (我只是testing它,所以我有-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使用-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.
编辑:较旧版本的蛮力可能会像(使用shell globing和printf在反引号或类似的生成-x ...参数):
tmpwatch -tmf 8 /tmp `printf -- "-x %s " /tmp/hadoop*/`
注意:需要printf格式string中的尾部空格。 正如所写,它不排除子目录中的hadoop* 。