web-dev-qa-db-ja.com

間隔と帯域幅のみのiperf結果を出力するにはどうすればよいですか?

コマンドから出力を取得しようとしています

iperf -c 10.0.0.1 -t 3600 -i 2

また、ログ記録の1時間全体について、リストされている間隔フィールドと帯域幅フィールドのみが必要です。

私は何年にもわたってgrepやawkを使用していません。

ヘルプは素晴らしいでしょう!

サンプル出力:

------------------------------------------------------------
Client connecting to node2, TCP port 5001
TCP window size:  129 KByte (WARNING: requested  130 KByte)
------------------------------------------------------------
[  3] local <IP Addr node1> port 2530 connected with <IP Addr node2> port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  19.7 MBytes  15.8 Mbits/sec

必要な出力:

0.0-10.0 15.8
1
Gutsygibbon
> iperf -c 127.0.0.1 -t 2 -i 0.5 -f m | tee log1 
 ------------------------------------------- ----------------- 
 127.0.0.1に接続しているクライアント、TCPポート5001 
 TCPウィンドウサイズ: 2.50 Mバイト(デフォルト)
 ---------------------------------------- -------------------- 
 [3]ローカル127.0.0.1ポート42200が127.0.0.1ポート5001に接続
 [ID]間隔転送帯域幅
 [3] 0.0-0.5秒449メガバイト7537メガバイト/秒
 [3] 0.5-1.0秒578メガバイト9697メガバイト/秒
 [3] 1.0-1.5秒575メガバイト9649メガバイト/秒
 [3] 1.5〜2.0秒587メガバイト9848メガバイト/秒
 [3] 0.0〜2.0秒2190メガバイト9183メガバイト/秒
> awk- F '[-] +' '/ sec/{print $ 3 "-" $ 4 "" $ 8}' log1 
 0.0-0.5 7537 
 0.5-1.0 9697 
 1.0-1.5 9649 
 1.5-2.0 9848 
 0.0-2.0 9183 
> iperf -c 127.0.0.1 -t 2 -i 0.5 -fm |\
> awk -Wi -F '[-] +' '/ sec/{print $ 3 "-" $ 4 "" $ 8}' 
#インタラクティブな結果は#
の後に続きます
> iperf -c 127.0.0.1 -t 2 -i 0.5 -xc -yc | tee log2 
 20180515044354 , 3,0.0-0.5,536084480,8577351680 
 20180515044355 , 3,0.5-1.0,602537984,9640607744 
 20180515044355 , , 3,1.0-1.5,621805568,9948889088 
 20180515044356 , 3,1.5-2.0,620888064,9934209024 
 20180515044356 , 3,0.0-2.0,2381447168 、9524874284 
> awk -F、 '{print $ 7 "" $ 9/1e6}' log2 
 0.0-0.5 8577.35 
 0.5-1.0 9640.61 
 1.0-1.5 9948.89 
 1.5-2.0 9934.21 
 0.0-2.0 9524.87 
> iperf -c 127.0.0.1 -t 2 -i 0.5 -xc -yc | awk -Wi -F、 '{print $ 7 "" $ 9/1e6}' 
#インタラクティブな結果は#
の後に続きます
3
guest-vm