检查主机存活状态
方法一:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败
#!/bin/bash
ping_success_status() { #写一个函数,ping 一次成功则提示ping成功
if ping -c 1 $IP >/dev/null; then
echo "$IP Ping is successful."
continue
fi
}
IP_LIST="10.0.0.23 192.168.1.1 192.168.18.2" #定义IP_LIST 为IP列表
for IP in $IP_LIST; do
ping_success_status
ping_success_status
ping_success_status #遍历IP列表,执行函数三次
echo "$IP Ping is failure!" #若执行三次函数依旧失败,则提示ping失败
done
方法二:将错误IP放到数组里面进行判断是否ping失败三次
#!/bin/bash
IP_LIST="10.0.0.23 192.168.1.1 192.168.18.2" #定义IP_LIST
for IP in $IP_LIST
do
NUM=1
while [ $NUM -le 3 ]
do
if ping -c 1 $IP > /dev/null; then
echo "$IP Ping is successful."
break #遍历IP_LIST,如果能ping通则提示,ip ping is successful
else
FAIL_COUNT[$NUM]=$IP
let NUM++ #若不能ping通,则让失败IP的失败次数+1
fi
done
if [ ${#FAIL_COUNT[*]} -eq 3 ]
then
echo "${FAIL_COUNT[1]} Ping is failure!" #判断若失败次数FALL_COUNT等于3次则提示此IP的ping is failure!
unset FAIL_COUNT[*] #并取消变量 FALL_COUNT的函数
fi
done