apacheプロセス起動数が指定した値以上である場合に
apache再起動を実施し、apache再起動処理が成功すれば、その内容をメール通知し、メール本文内に
再起動後のapacheプロセス数を表示させるスクリプトを書いています
sh -xでテスト実行を行って問題ない事を
確認してcronに登録しているのですがうまく実行されません
作成したスクリプトでどこか誤っている箇所があるようでしたら
ご指摘頂けますと幸いです
#! /bin/bash #監視するプロセス名を定義する PROCESS_NAME=/usr/sbin/httpd #メールを送信するメールアドレスを指定する ML_SEND=alert@abc.co.jp #監視するプロセスが何個起動しているかカウントする count=`ps -ef | grep $PROCESS_NAME | grep -v grep | wc -l` #監視するプロセスが256個以上場合に、処理を分岐する if [ $count -gt 256 ]; then sudo /etc/init.d/httpd stop; sleep 30; sudo /etc/init.d/httpd start fi if [ $? -eq 0 ];then echo "$PROCESS_NAME is MaxClients and so Apache restart is OK" $PROCESS_NAME is $count | mail -s "$HOSTNAME.com httpd process alert" $ML_SEND fi
cron登録は下記になります
*/5 * * * * /bin/bash /home/test/sh/httpd_proc_monitor.sh > /dev/null 2>&1
追記したスクリプト
#! /bin/bash #監視するプロセス名を定義する PROCESS_NAME=/usr/sbin/httpd #メールを送信するメールアドレスを指定する ML_SEND=test@aaa.co.jp #監視するプロセスが何個起動しているかカウントする count=`ps -ef | grep $PROCESS_NAME | grep -v grep | wc -l` #監視するプロセスが270個以上場合に、処理を分岐する if [ $count -ge 270 ]; then sudo /etc/init.d/httpd stop; sleep 30; sudo /etc/init.d/httpd start && echo "$PROCESS_NAME process is MaxClients and Apache restart is OK" $PROCESS_NAME is $count | mail -s "$HOSTNAME httpd process alert" $ML_SEND fi
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/06 06:46