Shell 脚本攻略:巡检(ping)一批主机,需要上报存在时延超过 50ms 和丢包现象的主机

文章目录

突然想记录一下一个多月以前我帮主管完成的一个活,亲测有效,生产与测试环境皆可使用。

需求:

巡检(ping)一批主机,需要上报存在时延超过50ms和丢包现象的主机。

脚本:

#!/bin/bash

#注:在/opt/目录下创建“ip.txt”文本,并放入需要测试的ip以作后续测试(遍历)
a=`cat /opt/ip.txt`

#在/opt目录下创建这三个txt文本
cd /opt
>./result.txt
>./result1.txt
>./result2.txt

#for循环,ping“ip.txt”内的ip,一共5次,间隔0.5s,结果输入至“result.log”
for i in $a
	do
	ping -c 5 -i 0.5 $i >./result.log

#首先,总体判断一下有无丢包情况
loss=`cat ./result.log | grep loss | grep -v grep | awk -F , '{print $3}' | awk -F % '{print $1}' | sed s/[[:space:]]//g`
	if [ "$loss" -ge 1 ];then
		echo $i >>./result1.txt
		continue
	fi

#如果没有丢包,则判断延时情况
cat ./result.log | grep from | grep -v grep | while read line
	do
	#获取ping命令的延时
	delay=`echo $line | awk -F = '{print $4}' | awk '{print $1}'`
	if [ `echo "$delay>50 " | bc` -eq 1 ];then
		echo $line >>result2.txt
		break
	fi
	done
done

#合并文件,输出丢包及时延结果
echo "丢包的主机:" >>./result.txt
cat result1.txt >>./result.txt
echo ""
echo "时延超50ms的主机:" >>result.txt
cat result2.txt >>./result.txt
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Xucf1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值