Wie kann ich iperf-Ergebnisse nur für Intervall und Bandbreite ausgeben?

731
Gutsygibbon

Ich versuche die Ausgabe des Befehls zu erhalten

iperf -c 10.0.0.1 -t 3600 -i 2 

Außerdem müssen nur die Felder Intervall und Bandbreite für die gesamte Protokollierungsstunde aufgelistet werden.

Ich habe grep oder awk seit Jahren nicht mehr benutzt.

Hilfe wäre super!

Beispielausgabe:

------------------------------------------------------------ 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 

Gewünschte Ausgabe:

0.0-10.0 15.8 
1

2 Antworten auf die Frage

3
guest-vm
> iperf -c 127.0.0.1 -t 2 -i 0,5-fm | tee log1 -------------------------------------------------- ---------- Client verbindet sich mit 127.0.0.1, TCP-Port 5001 TCP-Fenstergröße: 2,50 MByte (Standard) -------------------------------------------------- ---------- [3] lokaler 127.0.0.1-Port 42200, verbunden mit 127.0.0.1-Port 5001 [ID] Intervallübertragungsbandbreite [3] 0,0 - 0,5 s 449 MBytes 7537 Mbit / s [3] 0,5 bis 1,0 sec. 578 MBytes 9697 Mbits / sec [3] 1,0 bis 1,5 Sekunden 575 MBytes 9649 Mbits / Sek [3] 1,5 bis 2,0 s, 587 MBytes, 9848 Mbit / s [3] 0,0 - 2,0 s 2190 MBytes 9183 Mbits / s > awk -F '[-] +' '/ sec / ' 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 / ' # interaktive Ergebnisse folgen # 
> iperf -c 127.0.0.1 -t2 -i0,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, '' 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 -t2 -i0,5-xc -yc | awk -Wi -F, '' # interaktive Ergebnisse folgen # 
Ich denke ich bin fertig. Siehe vorhergehende Revision (en) für ein Durcheinander mit sed. Rückmeldungen zu möglichen Verbesserungen sind erwünscht. guest-vm vor 5 Jahren 0
Fantastisch, genau das, was ich brauchte. Deine Prämie verdient! Gutsygibbon vor 5 Jahren 0
-2
Robert McMahon

Wenn Sie iperf2 verwenden, sollten Sie die Formatierungsoption -yC verwenden

[root @ localhost iperf2-code] # src / iperf -c 192.168.1.4 -i 1 -yC -t 5 20180510151943,192.168.1.1,42090,192.168.1,4,5001,3,0,0-1,0,63438848,507510784 20180510151944, 192.168.1.1.42090.192.168.1.4.5001,3,1.0-2.063569920,508559360 20180510151945,192.168.1.1,42090,192.168.1.4,5001,3,2,0-3,0,57802752,462422016 20180510151946,192.168.1.1 42090,192.168.1.4,5001,3,3,0-4,0,57409536,459276288 20180510151947,192.168.1.1,42090,192.168.1.4,5001,3,4,0-5,0,57016320,456130560 20180510151947,192.168.142090,192.168. 1,4,5001,3,0,0-5,0,299237376,478429304

Bob

Wie genau halten Sie das für eine Antwort? Ihre Ausgabe sieht nicht sehr nach dem aus, was die Frage stellt. Scott vor 5 Jahren 0
"-yC" formatiert die Ausgabe als csv, was dann deutlich mehr Parsing möglich ist. Zum Beispiel kann die Ausgabe von Roberts Antwort in etwas wie `| geleitet werden cut -d, -f3-4` Nick S vor 5 Jahren 0
Dies ist eine coole Idee, funktioniert jedoch nicht, da das Feld für die Bandbreite nicht angezeigt wird. Ich kann hier nur Interval analysieren und der Rest sind IPs oder Ports Gutsygibbon vor 5 Jahren 0