プロセス監視シェルのサンプル
0.改定履歴
- 1998.07.27 初版
1.はじめに
このドキュメントは,稼動しているプロセスをチェックするシェルのサンプルを示す物である.
このサンプルを用いた後,crontabなどに登録し,定期的な監視プロセスとして稼動させればよい.
2.監視シェル
プロセスの監視を行うシェルのサンプルを以下に示す.
#!/bin/sh pcount=`/usr/bin/ps -ef|grep PROCESS|grep -v grep|wc -l` if [ $pcount = 0 ]; then echo ERROR Process not found! fi |
このシェルでは,次の様な事を行っている.
- psコマンドで,プロセスの一覧を拾っている.(grep PROCESS)
- grep -vを用い,プロセスリストから自分自身を排除している.(grep -v)
- wcを用い,その行数を取得して,その結果を環境変数pcountに設定している.
- if分で,pcountの中身を検証し,その内容が0(つまり0行,リストアップされなかった)かを判断し,echoで報告している.
3.e-mailの利用
cronで指定したシェルに,標準出力を行うように組み込むと,その結果がcrontabの持ち主宛にe-mailで報告される.
よって,このe-mailを.forwardファイルを使って,管理者に転送するようにしておけば,電子メールにて異常を感知することが出来る.
Date: Fri, 24 Jul 1998 13:35:06 +0900 From: Solaris Users <root@duo> To: root@duo Subject: Output from "cron" command Your "cron" job /export/home/bin/chkprocess.sh produced the following output: ERROR Process not found |
この場合,/export/home/bin/chkprocess.shが実行され,その出力結果が"ERROR Process not found"である.
ちなみに,シェルが標準出力を行わなければ,e-mail配送は行われない.