Как вывести результаты iperf только для Interval и Bandwidth?

587
Gutsygibbon

Я пытаюсь получить вывод команды

iperf -c 10.0.0.1 -t 3600 -i 2 

И нужны только поля Интервал и Полоса пропускания, перечисленные за весь час регистрации

Я не использовал 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

2 ответа на вопрос

3
guest-vm
> iperf -c 127.0.0.1 -t 2 -i 0,5 -fm | тройник log1 -------------------------------------------------- ---------- Клиент подключается к 127.0.0.1, TCP-порт 5001 Размер окна TCP: 2,50 МБ (по умолчанию) -------------------------------------------------- ---------- [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 / ' 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 / ' # интерактивные результаты следуют # 
> iperf -c 127.0.0.1 -t 2 -i 0.5 -xc -yc | тройник лог2 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 -t 2 -i 0.5 -xc -yc | awk -Wi -F, '' # интерактивные результаты следуют # 
Я думаю, что я сделал. Смотрите предыдущую ревизию (ы) для беспорядка с sed. Отзывы о возможном улучшении приветствуются. guest-vm 5 лет назад 0
Фантастика, именно то, что мне было нужно. Заработал вашу награду! Gutsygibbon 5 лет назад 0
-2
Robert McMahon

Если вы используете iperf2, вы можете попробовать опцию форматирования -yC

[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.0,63569920,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.1.1,42090,192.168. 1.4,5001,3,0.0-5.0,299237376,478429304

боб

Как именно вы считаете это ответом? Ваш вывод не очень похож на то, что задает вопрос. Scott 5 лет назад 0
`-yC` отформатирует вывод как csv, который будет значительно лучше разбираться. Например, результат ответа Роберта может быть передан в виде что-то вроде `| cut -d, -f3-4` Nick S 5 лет назад 0
Это классная идея, но она не работает, так как поле пропускной способности не отображается. Я могу разобрать только Интервал здесь, а остальное IP или порты Gutsygibbon 5 лет назад 0

Похожие вопросы