2016-12-29 4 views
0

私の会社のプログラムは、多くの異なるファイルタイプを持つ多数のデータを生成します。そのうちの1つである.logはファイルタイプが多く、ログファイルは必要ないため、プログラムが作成するとすぐに削除したいと考えています。 Unfortunatelly私はログ作成オプションを無効にすることはできません。プログラムは単にそのようなオプションを提供していないからです。私は思う:while trueループ最良のオプションでfind-deleteオプションを実行しているか、より良い/推奨オプションはありますか?ファイルが表示されるとすぐに特定のファイルタイプのファイルを削除します

while true 
do 
    find -type f -name "*.log" -delete 
done 

答えて

2

あなたは、ファイルシステムの変更を聞いて、それが表示されるか、単により簡単な解決策として、毎分に* .logファイルを削除するためにcronを使用する場合、ファイルを削除するincrondデーモンを使用することができます。

1

あなたが(すべてのLinuxディストリビューションの一部であるべき)inotify-toolsがインストールされている場合は、このスクリプトは、ブロック待機しますファイル作成のイベントのために、対応するファイルを削除します。

inotifywait -e create --monitor --format "%w%f" ${YOUR_LOG_DIR} | egrep -- line-buffered "\.log$" \ 
     | while read -r file; do 
      rm -v $file; 
      done 
+0

それは、ログファイルにも動作しますメインのログディレクトリの異なるサブディレクトリに格納されていますか? – burtek

+1

はい、 'inotifywait'の' --recursive'オプションがあります:https://linux.die.net/man/1/inotifywait –

関連する問題