特定の文字列に基づいてエラーログを検索して並べ替える

特定の文字列に基づいてエラーログを検索して並べ替える
  1. すべてのエラー.zipファイルとエラー.logファイルを検索し、「エラー」文字列でフィルタリングし、日付でソートする方法は?

  2. 総エラー数はどうですか?

要件:Linuxサーバーには、comp1、comp2、comp3の3つのコンポーネントがインストールされています。各コンポーネントには独自のログディレクトリがあります。各ログディレクトリには、Exception.log connection.log comp1.logといくつかの* .zipファイルが含まれています。私はそれらを検索し、日付に基づいてソートし、合計エラー数を表示する必要があります。

エラー履歴

2015-05-15 05:59:03,316 | 73002 | JomaManagerThread実行中のエラー

詳細情報を教えてください

ベストアンサー1

-pzipファイルの内容を出力するために使用できるファイル名が不要なようです。

(for i in ./*.zip; do unzip -p "$i"; done; cat ./*.log) |
   grep -F ERROR | sort 

またはerror.zipファイルがどこにある場合:

(find . -type f -name "*.zip" -exec unzip -p {} \;
 find . -type f -name "err*.log" -exec cat {} + ) |
   grep -F ERROR | sort

これにより、zipファイル名と解凍された抽出されたコンテンツファイル名だけでなく、ログファイル名も削除されます。この情報が必要な場合は、見つかった各行のどこかにファイル名を挿入するためのPythonプログラムを作成します(もちろん、日付より前ではありません)。標準zipfileモジュールを使用すると、最初にファイルを抽出せずにzipファイルの内容を処理でき、プログラムをstdoutに書き込むことができます。sort

おすすめ記事