ログ監視にシェルスクリプトを使用する

ログ監視にシェルスクリプトを使用する

ログファイルのエラーを監視したら、管理者に電子メールを送信したいと思います。

ログファイルには次のデータが含まれています。

11 Aug 02:30 Service1 restarted
11 Aug 05:35 Service1 restarted
11 Aug 08:43 Service2 restarted
11 Aug 11:20 Service1 restarted
11 Aug 14:53 Service2 restarted

5分ごとに実行され、最後のサービスの再起動が発生したことを確認し、電子メールを送信するスクリプトを作成したいと思います。

例:スクリプトが02:35に実行されると、再起動が表示され、Service1電子メールを送信しますService1 restarted at 02:30。たとえば、スクリプトが5:45に実行されたら、05: Service135に再起動メールのみを送信する必要があります。 (02:35 再起動を含めないでください)

この要件を満たす方法はありますか?私は基本的にLinuxとシェルスクリプトに初めて触れました。

ベストアンサー1

まず、5分のcrontabを作成します。

*/5 * * * * myscript.sh

myscript.shを実行します($HOMEディレクトリ内)。

 #!/bin/bash
 tail -1 /path/to/file.log > /some/dir/after
 if cmp -s /some/dir/after /some/dire/before
 then
     cat /some/dir/after | mail -s "restart" [email protected]
     cp /some/dir/after /some/dir/before
 fi

(もちろん)正しい価値観を持ってください。

これは、5分以内に2回の再起動がないことを意味します。

おすすめ記事