監控apache腳本:
1、每十分鐘檢查apache是否正常運行
分析:進程在運行如何判斷
1)lockfile是否存在
2)pid是在后臺存在
3)能否正常訪問頁面
2、如果apache運行不正常(進程死亡、頁面訪問也不正常等情況),
需要腳本能夠通過重啟apache進程來恢復正常。
分析:
1)先恢復后報警
2)如何恢復
3)如何報警
3、當apache故障時能通過郵件及短信報警,當apache故障恢復后能夠通知管理員
1)重新檢查apache是否正常
2)如果正常發信息告訴管理員已經自動恢復成功
3)如果apache還是不正常,發信息告知管理上線手工修復
#!/bin/bashif [ -f /var/lock/subsys/httpd ]
thenexport pid=`cat /var/run/httpd/httpd.pid`ps -p $pid | grep httpd &> /dev/nullREL1=$?elinks -dump http://localhost/ok.html &> /dev/nullREL2=$?if [ 0 -eq $REL1 ] && [ 0 -eq $REL2 ]then: elsepkill -9 httpdservice httpd restart &> /dev/nullREL3=$?echo "httpd is not OK" | mail -s "httpd is not ok" root@localhostsleep 3sif [ $REL3 -eq 0 ]thenecho "httpd is recovered OK" | mail -s "httpd is recovered ok" root@localhostelseecho "httpd is recovered not OK,please login your server and recover by yourself" | mail -s "httpd is recovered not ok" root@localhostfifi
elseservice httpd start &> /dev/nullREL4=$?echo "httpd is not OK" | mail -s "httpd is not ok" root@localhostsleep 3sif [ $REL4 -eq 0 ]thenecho "httpd is recovered OK" | mail -s "httpd is recovered ok" root@localhostelseecho "httpd is recovered not OK,please login your server and recover by yourself" | mail -s "httpd is recovered not ok" root@localhostfifi
*/10 * * * * sh httpd.sh