#!/bin/bash
inputip(){
read -p "請輸入第`expr $i + 1`臺服務器IP: " ip[$i]
}
check(){
for (( i=0;i<$num;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<$num;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