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

简介: 对于判断主机是否存活的时候,不能只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

目录
相关文章
|
Arthas 前端开发 Java
问题排查---应用程序不在接收新请求
关键词:springboot,jstack,Arthas
141 1
|
Java
如何判断一个对象是否存活?
如何判断一个对象是否存活?
83 0
|
6月前
|
监控 UED Python
代理IP的可用率一般是怎么来判断的
代理IP的可用率关乎用户体验和效率,涉及连通性测试(检查能否成功连接目标网站)、响应时间(衡量性能,短响应时间代表高可用性)、成功率统计(访问成功的比例显示稳定性和可靠性)、错误率分析(高错误率显示问题)、以及稳定性评估(长期性能表现确保服务连续性)。多种指标综合判断代理服务质量。
|
7月前
|
数据挖掘 网络安全
如何设置代理IP的并发数?
如何设置代理IP的并发数?
|
7月前
|
Shell
Shell一键检测本地存活ip是否存活
Shell一键检测本地存活ip是否存活
59 0
循环检测ip存活脚本鉴赏
循环检测ip存活脚本鉴赏
|
算法 Java Python
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
113 0
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
|
算法 Java C#
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
140 0
jvm(6) -- 如何判定对象为垃圾对象(是否存活)