一个简单的监控web服务的shell脚本

  • 监控说明:

    • 应用场景:监控web服务器状态,异常时邮件报警。

    • 脚本说明:通过wget(也可以用curl)监控服务器状态,如果不能正常访问,ping检测网络,网络正

    • 常通知管理员检查服务,ping不通邮件通知管理员。

    • 服务器列表使用数组,服务器状态函数使用返回值判断服务器是否异常。

  • 创建:

    #! /bin/bash
    ​
    web_hosts=(192.168.178.52:1000 192.168.178.53:2000)
    today_time=`date '+%F %H:%M:%S_week-%w'`
    [email protected]
    ​
    systemctl restart sendmail
    if [ `echo $?` -ne 0 ];then
        echo "无sendmail服务"
        exit
    fi
    ​
    for host_port in ${web_hosts[*]};do
        echo ${host_port}
        host=`echo ${host_port} | awk -F':' '{print $1}'`
        ping -c 5 ${host} &> /dev/null
        if [ `echo $?` -ne 0 ];then
            echo "${host} 服务器网络异常"
            echo "${today_time}发现: ${host}服务器网络异常" | mail -s "网络警告" ${to_email} &> /dev/null
        fi
        curl --connect-timeout 30 ${host_port} &> /dev/null
        if [ `echo $?` -ne 0 ];then
            echo "${host_port} web服务异常"
            echo "${today_time}发现: ${host_port}web服务异常" | mail -s "服务警告" ${to_email} &> /dev/null
        fi
    done

你可能感兴趣的:(shell,前端,服务器,linux)