生产批量检查web url并通过手机邮件报警案例

#!/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
posted @ 2022-03-29 14:15  厶訫  阅读(26)  评论(0编辑  收藏  举报