能夠檢測多臺服務器是否在線的腳本

#!/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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章