shell判断主机存活
通过ping命令,来查看主机是否存活,为了更准确,多ping几次
版本一:将错误IP放到数组里面判断是否ping失败三次
#!/bin/bash
IP_LIST="10.0.0.1 10.0.0.2 10.0.0.34" 将ip放进数组中
for ip in $IP_LIST; do #for循环遍历数组
num=1 #定义初始值
while [ $num -le 3 ]
do
if ping -c 1 $ip >/dev/null
then
echo "$ip Ping is success" #if 判断如果ping通 则返回success
break
else
FALL[$num]=$ip # 反之 则失败次数+1
let num++
fi
done
if [ ${#FALL[*]} -eq 3 ] # if判断如果失败次数等于3 则返回Ping is failure
then
echo "${FALL[1]} Ping is failure!"
unset FALL[*]
fi
done
版本二:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败
#!/bin/bash
success() {
if ping -c 1 $ip >/dev/null #定义一个函数ping成功一次则显示success
then
echo "$ip Ping is success"
continue
fi
}
IP_LIST="10.0.0.1 10.0.0.2 10.0.0.3" # 将ip地址放到数组
for ip in $IP_LIST #循环执行三次函数成功返回success 反之返回 failure
do
success
success
success
echo "$ip Ping is failure"
done