3分で監視システムを作ります。
分かりやすいところでWEBサービスの”httpd”を監視します。
監視にはpsコマンドを使います。
psコマンドを打つとこんな感じです。
# ps
PID TTY TIME CMD
8899 pts/0 00:00:00 su
8900 pts/0 00:00:00 bash
8906 pts/0 00:00:00 ps
各項目の説明については時間の関係上、割愛します。(3分しかないので)
httpdサービスだけ見たい場合はこんな感じ。
# ps ax | grep httpd
7010 ? S 0:01 /usr/sbin/httpd
7011 ? S 0:01 /usr/sbin/httpd
7012 ? S 0:01 /usr/sbin/httpd
7013 ? S 0:01 /usr/sbin/httpd
7014 ? S 0:01 /usr/sbin/httpd
18494 ? Ss 0:00 /usr/sbin/httpd
要はこのプロセス数を数えて、ひとつも見つからなければ「止まってるぞ」という事になるわけです。
シェルで書くとこうなります。
# hckeck.sh
#!/bin/bash
while :
do
pcount=`/bin/ps -ef|grep “httpd”|grep -v grep|wc -l`
if [ $pcount -lt 1 ]; then
echo “止まってるよー!”
break
fi
done
|
… プロセス数を数える
… 1より少ない(=0)なら…
… 処理
|
psコマンドのオプションはココでは説明しません。(残り1分切りました)
早速実行します。
# ./hcheck.sh
httpdサービスを止めます。
# /etc/init.d/httpd stop
httpd を停止中: [ OK ]
はい出ました。
# ./hcheck.sh
止まってるよー!
chojiro