1

Wildcard does not seem to work in exclude path provided to tmpwatch.

I have following dir structure inside /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

I want to exclude the dir starting with 'hadoop' from tmpwatch. So I am executing the following command

tmpwatch -tmf 8 -x /tmp/hadoop* /tmp

It shows that it will delete 'hadoop-reco' and 'hadoop-vrisbud' directories. (I am just testing it so I have -t flag added to it.)

I also tried

tmpwatch -tmf 8 -x '/tmp/hadoop*' /tmp
tmpwatch -tmf 8 -x '/tmp/hadoop.*' /tmp

Nothing seems to work. I want to exclude directories starting with 'hadoop' from tmpwatch.

I am using tmpwatch 2.9.7 version if that makes any difference.

I would like to know how I can do it on my current version of tmpwatch. As an answer below indicates that I can use the -X option in the upgraded version of tmpwatch, but I don't have this option available in my current version.

1 Answers1

1

Is upgrade (or compile from source) an option? Don't know which version first added this option; my (centos 6.6) man-page for tmpwatch 2.9.16 has:

-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.

Edit: Brute force for older versions may be like (use shell globing and printf in backquotes or similar to generate the -x ... arguments):

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

Note: Trailing space in printf format string is required. And as written it does not exclude hadoop* in sub-directories.

bk-se
  • 111
  • 3
  • This is the correct way to do it. I saw it on different posts online but I would like to see how I can do it in my current version of tmpwatch. The reason being I don't have the rights to upgrade the tmpwatch version on the server. I can ask my sysadmin to do it if this is the only option. – Varun Risbud Jun 01 '17 at 15:30