案例需求
脚本应用场景
解决问题
1、运维人员实时掌控机器的状态,防止宕机或者由于压力过大造成请求处理延时,保障业务的稳定、高效运行
脚本思路
1、通过ICMP协议的ping命令ping目标主机
网络延迟,假报警如何解决?3次
2、分析ping结果
3、给出结论
全部ping结果为假,报宕机全部ping成功,报正常否则报警告
实现代码
#!/bin/bash##Author: www.zutuanxue.com#Created Time:#Release:#Description:#1、ping 目标主机三次,并接收每次的状态值,ping成功返回1,不成功返回0for ((i=1;i<4;i++));do#测试代码if ping -c1 $1 &>/dev/null;then#分析结果export ping_count"$i"=1elseexport ping_count"$i"=0fi#时间间隔sleep 0.3done#3、分析结果# 3次ping失败报警#if [ $ping_count1 -eq $ping_count2 ] && [ $ping_count2 -eq $ping_count3 ]&&[ $ping_count1 -eq 0 ];thenecho "$1 宕机"elif [ $ping_count1 -eq $ping_count2 ] && [ $ping_count2 -eq $ping_count3 ]&&[ $ping_count1 -eq 1 ];thenecho "$1 正常"elseecho "warn: $1 网络延迟"fi#4、释放变量unset ping_count1unset ping_count2unset ping_count3
