三次机会判断主机是否存活

方式一:数组

#!/bin/bash
#使用数组做ping失败三次的判断#

while read ip
do
declare -A fail
for i in seq 3
do
ping -c1 -W1 $ip &>/dev/null

#如果一次就成功,则echo:up,跳出循环,否则数组fail[ip]++
if [ ? − e q 0 ] ; t h e n e c h o " ? -eq 0 ];then echo " ?eq0];thenecho"ip is ip…"
break
else
let fail[ i p ] + + f i d o n e f a i l [ ip]++ fi done fail[ ip]++fidonefail[ip]的值为3,echo这个ip,down
sum=echo ${fail[$ip]}
if [ " s u m " = = " 3 " ] ; t h e n e c h o " " sum" == "3" ];then echo "" sum"=="3"];thenecho""ip is down…
fi
done < ip.txt

方式二:变量

#!/bin/bash
#通过变量的值,实现三次失败的判定
#使用for大循环遍历ip地址
for i in cat $(pwd)/ip.txt
do
#定义变量count为0,每次大循环都重置count的值
count=0
#小循环循环次数
for j in seq 3
do
ping -c1 -W1 $i &>/dev/null
#如果成功echo;up,不成功则count++
if [ ? − e q 0 ] ; t h e n e c h o " ? -eq 0 ];then echo " ?eq0];thenecho"i is up…"
break
else
let count++
fi
done
#如果count的值等于3则echo;down
if [ “ c o u n t " = = " 3 " ] ; t h e n e c h o " count" == "3" ];then echo " count"=="3"];thenecho"i is down”
fi
done

方式三:函数

#!/bin/bash
#定义一个函数,Pingy一个up成功则跳出本次循环
ip_up() {
ping -c1 -W1 $ip &>/dev/null
if [ ? − e q 0 ] ; t h e n e c h o " ? -eq 0 ];then echo " ?eq0];thenecho"ip is up…"
continue
fi
}
#while循环拿到IP,执行函数,三次ping失败则echo;down
while read ip
do
ip_up
ip_up
ip_up
echo “$ip is donw…”
done < ip.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南柯一梦,笑谈浮生

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值