美文网首页
Shell 使用ping检测机器是否在线

Shell 使用ping检测机器是否在线

作者: 獨孤記憶 | 来源:发表于2020-07-10 22:05 被阅读0次

    1.简单检测在线情况

    #!/bin/bash
    #Created Time:2020/07/1
    for ((;;))
         do
               #要ping的IP
                for ip in 192.168.0.1 192.168.0.6 192.168.0.188
                        do
                               #将ping输出结果直接丢弃,但仍可被$?探测到成功与否
                                ping -c1 $ip &>/dev/null
                                if [ $? == "0" ]
                                        then
                                                    echo -e  "`date +"%F %H:%M:%S"` $ip is \033[32m UP \033[0m"
                                 else
                                                    echo -e "`date +"%F %H:%M:%S"` $ip is \033[31m DOWN\033[0m"
                                 fi
                               #休眠5秒
                                sleep 5
                done
    done
    
    输出结果

    2.网络掉线增加微信告警(server酱)

    #!/bin/bash
    #Created Time:2020/07/1
    for ((;;))
         do
               #要ping的IP
                for ip in 192.168.0.1 192.168.0.6 192.168.0.188
                        do
                               #将ping输出结果直接丢弃,但仍可被$?探测到成功与否
                                ping -c1 $ip &>/dev/null
                               #如果ping不通则推送微信告警
                                if [ $? != "0" ]
                                        then   
                                                    curl -d "text=主人,$ip 服务器挂掉啦&desp=$ip服务器挂掉啦,请尽快处理!" "https://sc.ftqq.com/这里填写您的SCKEY.send" >/dev/null 2>&1 &
                                 fi
                               #休眠5秒
                                sleep 5
                done
    done
    

    3.网络掉线增加邮件告警,需安装sendmail、mailx,参考链接

    #!/bin/bash
    #Time:2020/07/1
    #这里实际应用可以设置定时任务,不建议写死循环
    for ((;;))
            do
                    for ip in 192.168.0.1 192.168.0.6 192.168.0.188
                            do
                                    ping -c1 $ip &>/dev/null
                                    if [ $? != "0" ];then
                                            sendmail -t <<EOF
                                            From:服务器异常通知 <xxxx@xxxxx.com>
                                            To:xxxxx@xxxx.com
                                            Subject:$ip 服务器挂掉啦
                                            $ip 服务器挂掉了,请尽快处理
                                            EOF
                                    fi
                                    #休眠5秒  实际应用可以设置到1分钟或以上
                                    sleep 5
                    done
    done
    
    

    相关文章

      网友评论

          本文标题:Shell 使用ping检测机器是否在线

          本文链接:https://www.haomeiwen.com/subject/umsvcktx.html