第一个脚本
对目标网站的默认主页进行检查,脚本只执行一次,检查成功,脚本退出并echo出successful,失败了就是fales,这个脚本适合在服务刚刚启动的时候,去查看服务的主页,看看能否获取到,能获取到,服务基本都是正常的,不能的话就有问题,需要再配置。
#!/bin/sh
. /etc/init.d/functions ##加载这个脚本
RETVAL=0 ##初始化这个变量为0,用来检查是否成功返回
FAILCOUNT=0 ##失败次数的计数器
SCRIPTS_PATH="/root/script" ##脚本路径
function Get_UrlStatus(){ ##定义获取url默认首页的函数
for((i=1;i<=3;i++)) ##for循环三次,检查三次
do
wget -T 10 --tries=1 --spider http://$1 &> /dev/null ##下载首页,时间为10s内,尝试此时一次,使用爬虫模式 导入空设备
[ $? -ne 0 ] && let FAILCOUNT+=1; ##不成功的话,失败次数变量+1
done
if [ $FAILCOUNT -gt 1 ];then ##失败次数变量是否大于1
RETVAL=1 ##如果大于,RETVAL重新赋值为1
else
RETVAL=0 ##不如不大于,RETVAL重新赋值为0
fi
return $RETVAL 返回一个RETVAL的值
}
[ ! -d "${SCRIPTS_PATH}" ] && makir -p ${SCRIPTS_PATH}
##如果脚本文件的目录不在时,创建一个
#check_url ##检查的脚本
for URL in `cat ${SCRIPTS_PATH}/url_list` ##在脚本的目录下,创建一个url_list,里面写需要check的url列表。
do
echo -n "checking $URL:" ##输出一个检查中
Get_UrlStatus $URL && action "successful" /bin/true ||action "false" /bin/false ##执行函数,返回值为RETVAL,用返回值去觉得执行那个action。
done
第二个脚本
对目标网站的默认主页进行检查,是一个后台常驻进程,根据需要再规定时间对主页进行检查,正常的话,无所谓,不正常的话,发送邮件,结束进程。
#!/bin/sh
. /etc/init.d/functions
RETVAL=0
FAILCOUNT=0
SCRIPTS_PATH="/root/script"
MAIL_GROUP="123456789@qq.com"
LOG_FILE="/tmp/url.log"
function Get_UrlStatus(){
for((i=1;i<=3;i++))
do
wget -T 10 --tries=1 --spider http://$1 &> /dev/null
[ $? -ne 0 ] && let FAILCOUNT+=1;
done
if [ $FAILCOUNT -gt 1 ];then
RETVAL=1
NowTime=`date +"%Y-%m-%d-%H:%M:%S"`
SC="http://$1 service is error ,${NowTime}"
echo "send to:${MAIL_USER},Title:$SC" &> $LOG_FILE
for MAIL_USER in $MAIL_GROUP
do
mail -s "$SC" $MAIL_USER < ${LOG_FILE}
done
else
RETVAL=0
fi
return $RETVAL
}
[ ! -d "${SCRIPTS_PATH}" ] && makir -p ${SCRIPTS_PATH}
$check_url
if [ $RETVAL -eq 0 ];then
for URL in `cat ${SCRIPTS_PATH}/url_list`;do
Get_UrlStatus $URL
done
sleep 10s
else
exit
fi