1

たくさんのログがあり、毎週土曜日に圧縮する必要があります。私はそれを行うためになんとかワンライナーを行うことができますが、すでに圧縮されているファイルを再圧縮したくありません。例えば:

ls  myDir/
test1 test2 test3

第1週の土曜日に、次のようになります。

ls myDir/
test1.bz2 test2.bz2 test3.bz2

2週目には、次のようになります。

ls  myDir/
test1.bz2 test2.bz2 test3.bz2 newTest1 newTest2

第2週の土曜日に私は持っていたいです:

ls  myDir/
test1.bz2 test2.bz2 test3.bz2 newTest1.bz2 newTest2.bz2

これは次のとおりです。圧縮されたファイルですが、すでに圧縮されたファイルは再圧縮されません

これは私のcrontabワンライナーです:

0 2 * * 6 find /myDir -name "log*" -ctime +7 -exec bzip2 -zv {} \;
This is:
   Find all the log files, 7 days of older and compress them.
   (could be obvious! but I'm a newbie)

これはファイルを圧縮するだけです。しかし、検証を行う方法や、私が言っている状況を回避する方法がわかりません。コマンドをもう一度実行しようとすると、圧縮されたファイルは影響を受けていないようですが、これが常に影響を受けるかどうかはわかりません。会社の本番サーバーを台無しにしたくない!

4

1 に答える 1

5

次のコマンドを試してください。

find /myDir -name 'log*' -and -not -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;
于 2012-06-28T19:43:25.000 に答える