#!/bin/bash
RETVAL=0 ##定义返回值
SCRIPTS_PATH="/test/oldboy" ##设定路径
MAILE_GROUP="账号@qq.com" ##邮件提醒人
LOG_FILE="/tmp/web_check.log" ##日志路径
Url_Check(){ ##定义URL检查函数
FAILCONT=0 ##连接失败次数
for ((i=1;i<=3;i++))
do
#wget -T 10 -t 1 -S http://${HOST_NAME} >/dev/null 2>&1 ##—T 设定超时时间,-t设定重传次数,-S表示不下载
curl -I http://${HOST_NAME} >/dev/null 2>&1 ##和wget二选一,通过curl获得该URL的头部
[ $? -ne 0 ] && let FAILCONT+=1 ##进行判断,如果返回值不为0则,连接失败次数加1
done
if [ $FAILCONT -eq 0 ] ##如果连接失败次数为0,则证明全部连接成功
then
echo "$HOST_NAME is contacting!"
else
RETVAL=1 ##设定返回值为1
NOWTIME=`date +"%m-%d %H:%M:%S"` ##记录此时的时间
MAILHEADER="http://${HOST_NAME} service is error,${NOWTIME}" ##邮件首部
echo "send to:$MAIL_USER,Tile:$MAILHEADER">$LOG_FILE ##日志记录
for MAILE_USER in $MAILE_GROUP
do
mail -s "$MAILHEADER" $MAILE_USER<$LOG_FILE
echo "maile is send!" ##发送邮件
done
return $RETVAL ##返回返回值,最后一布用
fi
}
[ ! -d "$SCRIPTS_PATH" ] && mkdir -p $SCRIPTS_PATH ##判断路径是否存在,若不存在则创建
[ ! -f "$SCRIPTS_PATH/domain.list" ] &&{
cat >$SCRIPTS_PATH/domain.list<<EOF
172.25.254.103
172.25.254.62
EOF
}
##判断域名文件是否存在,若不存在则创建并输入内容
for HOST_NAME in `cat $SCRIPTS_PATH/domain.list`
do
echo "checking $HOST_NAME..."
Url_Check $HOST_NAME &&echo ok||echo no
##通过return的返回值,确定输出为ok或是no
done