ログエラー集計スクリプトを作成する

ShellBeginner
オンラインで実践に進む

はじめに

3 つのアプリケーションログに対して、同じ簡単な確認を行う必要があります。ERROR で始まる行を数え、ファイルごとに 1 行ずつ結果を出力します。短いループですべての .log ファイルを処理できるため、コマンドを手動で繰り返す必要はありません。

直前のガイド付き実験では、この種のループを段階的に作成しました。今回のチャレンジでは、余分なコピー処理やレポート用ディレクトリ、エラー処理を追加せず、再利用できる小さなスクリプトを 1 つ作成します。

エラー集計スクリプトを作成する

現在の状況

/home/labex/project/log-automation/logs には、api.loghealthy.logworker.log が含まれています。

作業範囲

  • /home/labex/project/log-automation/process-logs.sh を作成します。
  • 最初の引数は、ログが格納されているディレクトリとします。
  • .log で終わるファイルを処理します。
  • 各ファイルについて、ERROR で始まる行を数えます。
  • filename errors=count 形式で 1 行ずつ出力します。

目標

./process-logs.sh logs として実行したときに、正しいエラー集計を出力する実行可能なスクリプトを 1 つ完成させます。

合格条件

  • スクリプトの先頭が #!/bin/bash で始まり、実行可能になっていること。

  • ./process-logs.sh logs の実行結果が次のようになること。

    api.log errors=1
    healthy.log errors=0
    worker.log errors=2
    

ヒント

どのガイド付きサンプルが最も近いでしょうか?

"$log_dir"/*.log を順番に処理し、^ERROR で始まる行を数え、ファイル名と件数を出力していたループを確認してください。

まとめ

ログの件数を数えるおなじみのループを、短く再利用可能な Bash スクリプトに仕上げました。

✨ 解答を確認して練習