共计 794 个字符,预计需要花费 2 分钟才能阅读完成。
案例需求
通过脚本判断远程计算机的存活状态
脚本应用场景
1、通过监控平台调用监控脚本对服务器进行监控
2、机器扫描
解决问题
1、运维人员实时掌控机器的状态,防止宕机或者由于压力过大造成请求处理延时, 保障业务的稳定、高效运行
脚本思路
1、通过 ICMP 协议的 ping 命令 ping 目标主机
网络延迟,假报警如何解决?3 次
2、分析 ping 结果
3、给出结论
全部 ping 结果为假,报宕机 | |
全部 ping 成功,报正常 | |
否则报警告 |
实现代码
# | |
#Author: www.zutuanxue.com | |
#Created Time: | |
#Release: | |
#Description: | |
#1、ping 目标主机三次,并接收每次的状态值,ping 成功返回 1,不成功返回 0 | |
for ((i=1;i<4;i++));do | |
# 测试代码 | |
if ping -c1 $1 &>/dev/null;then | |
# 分析结果 | |
export ping_count"$i"=1 | |
else | |
export ping_count"$i"=0 | |
fi | |
# 时间间隔 | |
sleep 0.3 | |
done | |
#3、分析结果 | |
# 3 次 ping 失败报警 | |
# | |
if [$ping_count1 -eq $ping_count2 ] && [$ping_count2 -eq $ping_count3 ]&&[$ping_count1 -eq 0 ];then | |
echo "$1 宕机" | |
elif [$ping_count1 -eq $ping_count2 ] && [$ping_count2 -eq $ping_count3 ]&&[$ping_count1 -eq 1 ];then | |
echo "$1 正常" | |
else | |
echo "warn: $1 网络延迟" | |
fi | |
#4、释放变量 | |
unset ping_count1 | |
unset ping_count2 | |
unset ping_count3 |
案例思考
当你的机器放在 IDC 机房的时候,你如何判断各个运营商的用户到你服务器的以下数据。网络延迟如何获得 | |
网络丢包率如何获得 |
正文完
星哥玩云-微信公众号
