#!/bin/bash
inputip(){
read -p "请输入第`expr $i + 1`台服务器IP: " ip[$i]
}
check(){
for (( i=0;i
do
inputip
echo "${ip[$i]}" | egrep '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$' > /dev/null
if [ $? -ne 0 ]; then echo "错误的IP地址,请确认后再次输入!" && inputip
fi
done
echo "检测中,请稍候..."
echo ----------------------------------------
#echo ${ip[@]}
#exit
n=0
for (( j=0;j
do
ping -c 3 ${ip[$j]} &> /dev/null
if [ $? -ne 0 ]
then
echo "地址为${ip[$j]}的服务器`date`不在线。" && let n++
fi
done
echo ----------------------------------------
echo "检测完毕,共有$n台服务器不在线。"
}
read -p '请输入需要检测的服务器的数量:' num
echo $num | grep -q '^[1-9][0-9]*$'
if [ $? -ne 0 ]
then read -p 'You must input a number: ' num && check
else
check
fi