【shell】shell脚本监控某个IP地址是否健康

前段时间有个特殊ip,需要随时监控他是否可以ping通,在ping通的情况下是否存在丢包
研究了一下,特此记录一下脚本

下面是我的脚本,有许多不足之处,欢迎交流!
#!/bin/bash
#  author :ssiy
# 需求:ping IP通->有丢包->输出IP通和丢包率;
#                   IP通->无丢包输出ip正常;
#                   不通 -> 输出IP不通;
#					 一次Ping 10个包,10分钟ping一次 ping完一次睡眠10分钟
# 思路:通过ping 的丢包率来判断ip是否正常
# 丢包率 100%-->不通-->输出IP不通
# 丢包率 0%-->不通-->输出IP正常
# 丢包率 其他-->能ping但有丢包-->输出丢包率
# 10分钟ping一次可以通过定时任务来实现,计划任务格式   “分 时 日 月 星”

# 该ip只是我用来测试的,大家可以根据自己的需求,使用其他ip,如果ip较多,可以统一放到一个文件,用for循环来操作
IP=8.8.8.8

# 取出丢包率的数字,取丢包率是该脚本的核心语句
loss_rate=`ping -c 10 $IP | tail -n 2 | head -n 1 | awk -F ',' '{print $3}' | tr "%" " "  | awk '{print $1}'`
#echo "$loss_rate%"

#  用if来输出相应对ip判断的语句
if [ $loss_rate -eq 0 ]
then  
	echo "ip正常!!!"
else 
	if [ $loss_rate -eq 100 ]
     	then
 		echo "ip不通,请检查!!!"
	else
		echo "ip能ping通,但丢包率为$loss_rate%!!!"
	fi
fi

定时任务

H/10 * * * *   脚本路径
# 脚本记得加执行权限

脚本还只是初级版本,我有一个设想:
可以将取出来的ip丢包率保存,当丢包率为100%时,可以通过python发送邮件告警,这样可以即时的监控的ip的健康状态,达到自动化的目的,但python脚本我不是很熟,会尽力学习看看能不能实现该功能!

本人对shell脚本比较感兴趣,暂时还只能写比较简单的,如果有遇到不会写的,欢迎留言!

猜你喜欢

转载自blog.csdn.net/ssiyla/article/details/106229243