ログファイルのエラーを監視したら、管理者に電子メールを送信したいと思います。
ログファイルには次のデータが含まれています。
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: Service1
35に再起動メールのみを送信する必要があります。 (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回の再起動がないことを意味します。