判断主机是否存活的优雅方式

简介: 对于判断主机是否存活的时候,不能只ping一次就下结论,对于其他业务类似。因此应该增加重试次数。采用三种方式实现。

对于判断主机是否存活的时候,不能只ping一次就下结论,对于其他业务类似。因此应该增加重试次数。采用三种方式实现。

判断主机存活(1)

#/bin/bash
# date: 2022年1月14日21:28:42
# author: ninesun
# desc: ping 主机ip超过三次ping不通再失败
while read ip;do
        ping_count=0
        for i in {1..3};do
                ping -c1 -W1 $ip >& /dev/null
        if [ $? -eq 0 ];then
                echo "$ip ping successful!"
                break #跳出for循环
        else
                echo "$ip is failed! $i"                
                let ping_count++
        fi
        done
done <ip.txt

45f2c6003f4648e5969657291b4ac32e.png

判断主机存活(2)

#!/bin/bash
ping_process() {
        ping -c1 -W1 $ip >& /dev/null
        if [ $? -eq 0 ];then
                echo "$ip ping successful!"
                continue >& /dev/null # 跳过本次循环
        fi
}
while read ip;do
        ping_process
        ping_process
        ping_process
        echo "$ip ping failed!"
done <ip.txt

d5dd2ee79b8b4fb28a35245543f22353.png

判断主机存活(3)

#!/bin/bash
while read ip;do
        for i in {1..3};do
                ping -c1 -W1 $ip >&/dev/null
                if [ $? -eq 0 ];then
                        echo "$ip ping suucessful"
                        break
                else
                        echo "$ip ping failed $i"
                        fail_count[i]=$ip
                fi
        done
        if [ ${#fail_count[*]} -eq 3 ];then
                echo "$ip ping failed!"
                unset fail_count[*]
        fi
done <ip.txt
~            

efba93a06b464e3b88cfe3462fe6a0ab.png

目录
相关文章
|
8月前
|
Java
如何判断一个对象是否存活?
如何判断一个对象是否存活?
51 0
|
6天前
|
数据挖掘 网络安全
如何设置代理IP的并发数?
如何设置代理IP的并发数?
|
6天前
|
数据采集 安全 测试技术
什么是代理IP池?如何判断IP池优劣?
什么是代理IP池?如何判断IP池优劣?
|
6天前
|
Shell
Shell一键检测本地存活ip是否存活
Shell一键检测本地存活ip是否存活
18 0
|
6天前
|
网络协议 网络架构 Windows
局域网网络故障判断常用方法
网络基础培训,整理了如下局域网常用的判断故障的方法,供大家参考学习。
118 2
|
算法 Java Python
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
75 0
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
|
算法 Java C#
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
109 0
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
|
算法 Java
如何判断一个对象是否存活
如何判断一个对象是否存活
147 0
|
网络协议 Linux 测试技术
怎么正确判断服务器的网络情况(1)
怎么正确判断服务器的网络情况
742 0
怎么正确判断服务器的网络情况(1)