监控网站可用性超实用脚本分享,1)脚本内容[roo
监控网站可用性超实用脚本分享,1)脚本内容[roo
脚本功能:实现对公司网站的url地址检查,把故障通过邮件或者短信的形式报告给管理员,可以同时加入多个监控点,URL地址可以是实际网站地址,也可以是专门的地址,当然,我们也可以结合nagios等软件来实现。
1)脚本内容
[root@nosql01 scripts]# cat check_url_by_oldboy.sh #!/bin/bash # this script is created by oldboy. # e_mail:31333741@qq.com # qqinfo:49000448 # function: oldboy trainning stripts,check_service. # version:1.1 ################################################ # oldboy trainning info. # QQ 1986787350 70271111 # site:http://www.etiantian.org # blog:http://oldboy.blog.51cto.com # oldboy trainning QQ group: 208160987 226199307 ################################################ #set -x RETVAL=0 SCRIPTS_PATH="/server/scripts" MAIL_GROUP="31333741@qq-.com 49000448@qq-.com" #MAIL_GROUP="18600338340 18911718229" ## web detection function LOG_FILE="/tmp/web_check.log" function Get_Url_Status(){ FAILCOUNT=0 for (( i=1 ; $i <= 3 ; i++ )) do wget -T 15 --tries=1 --spider http://${1} >/dev/null 2>&1 if [ $? -ne 0 ] then let FAILCOUNT+=1; fi done #if 3 times then send mail. if [ $FAILCOUNT -gt 1 ] then RETVAL=1 NOW_TIME=`date +"%m-%d %H:%M:%S"` SUBJECT_CONTENT="http://${HOST_NAME} service is error,${NOW_TIME}." echo "send to :$MAIL_USER ,Title:$SUBJECT_CONTENT" >$LOG_FILE for MAIL_USER in `$MAIL_GROUP` do mail -s "$SUBJECT_CONTENT " $MAIL_USER <$LOG_FILE #sh $SCRIPTS_PATH/sms_send $SUBJECT_CONTENT $MAIL_USER done else RETVAL=0 fi return $RETVAL } #func end. [ ! -d "$SCRIPTS_PATH" ] && { mkdir -p $SCRIPTS_PATH } [ ! -f "$SCRIPTS_PATH/domain.list" ] && { cat >$SCRIPTS_PATH/domain.list<<EOF oldboy.blog.51cto.com bbs.etiantian.org EOF } #service check for HOST_NAME in `cat $SCRIPTS_PATH/domain.list` do echo -n "checking $HOST_NAME: " Get_Url_Status $HOST_NAME && echo ok||echo no #Get_Url_Status $HOST_NAME done
2)演示结果
[root@nosql01 scripts]# sh check_url_by_oldboy.sh checking oldboy.blog.51cto.com: ok checking bbs.etiantian.org: no
提示:上面我们看到的仅仅是为了调试而加的,后台已经对故障站进行了邮件及短信报警。
3)生产用法
实际工作中,我们可以结合定时任务调用脚本检查,甚至可以稍加改进,在服务的重启过程中进行检查。
评论暂时关闭