2017-03-08 13 views
0

ファイルが一度大きくなると、1つ以上のTomcatログディレクトリのcatalina.outファイルを削除するbashスクリプトがある一定の大きさ。私は夜間にこのスクリプトをcronジョブとして実行します。cronジョブから空のcatalina.outを作成する(ちょうど削除されたcatalina.outに基づいて)

find /apache-tomcat-blah*/. -name catalina.out -size +1000M -delete 

しかし、私の問題は、私はすぐに自動的に古いものが削除されると、その場所に新しい空のものを作成する必要がある:それは本質的にこのようになります。

私は、tomcatインスタンスが削除されたcatalina.outを事前に知りません。また、私は/ apache-tomcat-blah * /に対応するすべてのtomcatインスタンスを知っていると仮定したくありません。私たちは時々彼らを変えます。

私はのように、その情報理論的に配管することができるように、私は(多分私はそれを仮定するべきではありません)findコマンドは、それだけで削除されたかを知っていると仮定します。

$ echo "" > /apache-tomcat-justDeletedFromDir/logs/catalina.out 

私が入れてかを把握することができればapache-tomcat-justDeletedFromDir文字列の一部です。

私はどんな考えにも感謝します。ありがとうございました!

+0

「>」はリダイレクションであり、パイプではありません。パイプはファイルではなくプロセス間通信を参照します。 –

答えて

0

だけのようなものは使用しない理由:

for f in $(find /apache-tomcat-blah*/. -name catalina.out -size +1000M); do 
    rm $f 
    touch $f 
done 
ので、あなたの findコマンドは今サブシェル $()で実行され

、および出力(ファイルのリスト)を通して、あなたのbashスクリプトの繰り返し処理をを介して(各1を削除します(touch経由)

ファイルに空白がある場合は、上記に注意する必要があります(注)。

+0

大変お約束してくれてありがとう@Brian Agnew。私はすぐにそれを試みます。 –

+0

ええ、働いた。もう一度おねがいします@Brian Agnew –

関連する問題