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

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

目录
相关文章
|
9月前
|
Java
如何判断一个对象是否存活?
如何判断一个对象是否存活?
51 0
|
20天前
|
数据挖掘 网络安全
如何设置代理IP的并发数?
如何设置代理IP的并发数?
|
20天前
|
数据采集 安全 测试技术
什么是代理IP池?如何判断IP池优劣?
什么是代理IP池?如何判断IP池优劣?
|
20天前
|
数据采集 安全 大数据
使用代理IP时有哪些小技巧?
代理IP工具在大数据和跨境行业广泛使用,能隐藏真实IP并提升数据采集效率。选择时考虑代理IP的质量、速度、稳定性和价格,确保服务商信誉安全。测试多个代理IP以满足不同需求,设置正确请求头信息避免被目标服务器屏蔽。避免频繁更换地区,定期更新代理IP,并保护个人信息。根据业务需求制定使用计划,提前学习相关技巧,可避免后期问题。
|
10月前
|
开发框架 供应链 JavaScript
齐套检查与分配在生产计划中的实现
最近一段时间看到很多关于生产计划中,作齐套检查与分析讨论,正好我们的易排1.5版添加了类似功能。本文结合易排平台上相应的功能与特征,介绍一下我们在这方面的些许研究结论与看法。
120 0
|
12月前
|
存储 SQL 数据库
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
240 0
|
数据库 Windows 容器
如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?
如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?
244 0
|
算法 Java Python
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
77 0
26. 如何判断一个对象是否存活?(或者GC对象的判定方法)?
|
算法 Java C#
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
109 0
jvm(6) -- 如何判定对象为垃圾对象(是否存活)
|
算法 Java
如何判断一个对象是否存活
如何判断一个对象是否存活
148 0