Shell腳本測試服務是否能夠ping通

/ 1 / ping指令詳解

-d         :使用Socket的SO_DEBUG功能;
-c<完成次數>:設置完成要求迴應的次數;
-f:極限檢測;
-i<間隔秒數>:指定收發信息的間隔時間;
-I<網絡界面>:使用指定的網絡界面送出數據包;
-l<前置載入>:設置在送出要求信息之前,先行發出的數據包;
-n         :只輸出數值;
-p<範本樣式>:設置填滿數據包的範本樣式;
-q         :不顯示指令執行過程,開頭和結尾的相關信息除外;
-r         :忽略普通的Routing Table,直接將數據包送到遠端主機上;
-R         :記錄路由過程;
-s<數據包大小>:設置數據包的大小;
-t         :超時時間
-v         :詳細顯示指令的執行過程。
-W         : 等待時間

/ 2 / 腳本

使用方式

運行腳本時統一定義每個IP的循環次數, 例如

sh test.sh 2

腳本中有整數驗證, 輸入非法字符腳本會停止並輸出

循環次數必須爲正整數!

無需輸入URL的版本

#!/bin/bash
ip_array=(
  www.baidu.com
  www.csdn.net
)

cycle_num=0
if [ $# -ge 1 ];then
  expr $1 + 0 &>/dev/null
  if [ $? -eq 0 ];then
    cycle_num=$1
  else 
    echo "循環次數必須爲正整數!"
  fi
else 
  cycle_num=10
fi
for ((i=0;i<${cycle_num};i++))
do
    for url in ${ip_array[@]}
    do 
      echo "--------------------------"
      ping -c 1 -W 5 $url
      if [ $? -eq 0 ];then
        echo "success url : ${url}" 
      else 
        echo "Unable to Ping pass ${url}"
      fi
      echo "--------------------------"
      echo ""
    done
done

運行詳情

localhost wise$ sh test.sh 2
--------------------------
PING www.a.shifen.com (220.181.38.149): 56 data bytes

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss, 1 packets out of wait time
round-trip min/avg/max/stddev = 9.089/9.089/9.089/0.000 ms
success url : www.baidu.com
--------------------------

--------------------------
PING www.csdn.net (47.95.164.112): 56 data bytes

--- www.csdn.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss, 1 packets out of wait time
round-trip min/avg/max/stddev = 5.416/5.416/5.416/0.000 ms
success url : www.csdn.net
--------------------------

--------------------------
PING www.a.shifen.com (220.181.38.149): 56 data bytes
64 bytes from 220.181.38.149: icmp_seq=0 ttl=52 time=4.679 ms

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 4.679/4.679/4.679/0.000 ms
success url : www.baidu.com
--------------------------

--------------------------
PING www.csdn.net (47.95.164.112): 56 data bytes
64 bytes from 47.95.164.112: icmp_seq=0 ttl=93 time=3.714 ms

--- www.csdn.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.714/3.714/3.714/0.000 ms
success url : www.csdn.net
--------------------------

需要輸入URL的版本

#!/bin/bash
read -p "請輸入要測試的服務URL, 以逗號分隔 : " URL_INPUT

ip_array=(${URL_INPUT//,/ })


cycle_num=0
if [ $# -ge 1 ];then
  expr $1 + 0 &>/dev/null
  if [ $? -eq 0 ];then
    cycle_num=$1
  else 
    echo "循環次數必須爲正整數!"
  fi
else 
  cycle_num=10
fi
for ((i=0;i<${cycle_num};i++))
do
    for url in ${ip_array[@]}
    do 
      echo "--------------------------"
      ping -c 1 -W 5 $url
      if [ $? -eq 0 ];then
        echo "success url : ${url}" 
      else 
        echo "Unable to Ping pass ${url}"
      fi
      echo "--------------------------"
      echo ""
    done
done

運行詳情

localhost wise$ sh test.sh 2
請輸入要測試的服務URL, 以逗號分隔 : www.baidu.com,www.net.com
--------------------------
PING www.a.shifen.com (220.181.38.149): 56 data bytes

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss, 1 packets out of wait time
round-trip min/avg/max/stddev = 11.973/11.973/11.973/0.000 ms
success url : www.baidu.com
--------------------------

--------------------------
PING www.csdn.net (47.95.164.112): 56 data bytes

--- www.csdn.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss, 1 packets out of wait time
round-trip min/avg/max/stddev = 5.049/5.049/5.049/0.000 ms
success url : www.csdn.net
--------------------------

--------------------------
PING www.a.shifen.com (220.181.38.149): 56 data bytes
64 bytes from 220.181.38.149: icmp_seq=0 ttl=52 time=4.653 ms

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 4.653/4.653/4.653/0.000 ms
success url : www.baidu.com
--------------------------

--------------------------
PING www.csdn.net (47.95.164.112): 56 data bytes
64 bytes from 47.95.164.112: icmp_seq=0 ttl=93 time=3.734 ms

--- www.csdn.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.734/3.734/3.734/0.000 ms
success url : www.csdn.net
--------------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章