5405


2つのノードに対するiperfのスループット測定結果を比較し、差が2割以上だった時に通知を出したいと考えています。

・スループット測定の結果から、スループット測定の結果の数字（ここでは20.2と10.2）のみを抜き出す方法  
・抜き出した数値を計算する方法

の２点についてご教示願えませんでしょうか。

書けるところまで書いてみたソースは、下記の通りです。

[code]

    #!/bin/sh
    
    # スループット測定１
    echo "TCP_DL 01"
    iperf -c 10.242.23.199 -i 1 -t 5 -f m  >> TCPDL1.txt
    tail -n 1 TCPDL.txt
    tail -n 1 TCPDL.txt >> throughput1
    
    # スループット測定2
    echo "TCP_DL 02"
    iperf -c 10.242.23.200 -i 1 -t 5 -f m >> TCPDL2.txt
    tail -n 1 TCPDL2.txt
    tail -n 1 TCPDL2.txt　>> throughput2
    
    #測定結果の比較
    if (throughput1)*0.8 > throughput2 
    then 
    echo "スループット低下"
    else
    echo ""
    fi
    
[/code]

実行結果です。

[code]

    TCP_DL 01
    [  4]  0.0- 5.1 sec  11896 MBytes  19393 Mbits/sec
    TCP_DL 02
    [  4]  0.0- 5.0 sec  12490 MBytes  20952 Mbits/sec
    iperf.sh: line 20: syntax error near unexpected token `0.8'
    iperf.sh: line 20: `if (throughput1)0.8 > throughput2'
    
[/code]


CC BY-SA 3.0
2015-01-27T03:12:25.517
5395
2015-01-27T06:38:50.713
2015-01-27T05:16:52.273
7590
7590
question
bash
iperfのスループット測定結果を比較し、差が大きかった時に速度低下の通知を出したい


必要最小限の改変版です

[code]

    #!/bin/sh
    
    # スループット測定１
    echo "TCP_DL 01"
    iperf -c 10.242.23.199 -i 1 -t 5 -f m  >> TCPDL1.txt
    tail -n 1 TCPDL.txt
    throughput1=`tail -n 1 TCPDL.txt | sed 's/^.* \([[:digit:]]*\) Mbits\/sec$/\1/'`
    
    # スループット測定2
    echo "TCP_DL 02"
    iperf -c 10.242.23.200 -i 1 -t 5 -f m >> TCPDL2.txt
    tail -n 1 TCPDL2.txt
    throughput2=`tail -n 1 TCPDL2.txt | sed 's/^.* \([[:digit:]]*\) Mbits\/sec$/\1/'`
    
    #測定結果の比較
    if expr $throughput1 \* 8 \> $throughput2 \* 10 > /dev/null
    then 
    echo "スループット低下"
    else
    echo ""
    fi
    
[/code]

  * スループットが極端に低下してkbpsオーダーになった
  * iperfが異常終了した

などの状況には対応してません。


CC BY-SA 3.0
2015-01-27T06:38:50.713
5405
2015-01-27T06:38:50.713
5793
5395
answer