web-dev-qa-db-ja.com

tmpwatchパスでワイルドカードを使用する方法

ワイルドカードは、tmpwatchに提供された除外パスでは機能しないようです。

/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

'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を使用できることを示していますが、現在のバージョンではこのオプションを使用できません。

1
Varun Risbud

アップグレード(またはソースからのコンパイル)はオプションですか?このオプションを最初に追加したバージョンがわからない。 tmpwatch 2.9.16の私の(centos 6.6)マニュアルページには次のものがあります。

-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*を除外しません。

1
bk-se