Использование awk и grep для результатов iftop

Я хотел отслеживать скорость отправки и приема в сети сети с помощью iftop. Это то, что работает для меня:

iftop -t -s 1 -n -N | grep 'Total send and receive rate: ' | awk '{print $8}' 

Адрес Mac и Ips включены в результат, что-то вроде этого:

 interface: eth0 IP address is: 192.254.78.90 MAC address is: 00:26:9e:b5:81:de 14.7Mb 

Мне нужна последняя строка. Поэтому я создал скрипт:

 iftop -t -s 1 -n -N >> result.txt cat result.txt | grep 'Total send and receive rate: ' | awk '{print $8}' 

Когда я использую это в командной строке, он отлично работает и дает мне только последнюю строку, которая является «14.7Mb» при использовании ее в качестве .sh-скрипта, все еще содержит MAC-адрес и Ip.

Любая идея, как можно решить? Я думаю, должно быть лучшее решение, использующее sed?

  1. Имя интерфейса и MAC-адрес печатаются в stderr, поэтому они не передаются в grep. Вы можете избавиться от stderr, перенаправив его в / dev / null
 iftop -t -s 1 -n -N 2>/dev/null 
  1. Вы используете awk, так что вам тоже не нужен grep.
 iftop -t -s 1 -n -N 2>/dev/null | awk '/send and receive/ {print $8}' 

iftop прослушивает последние 40 секунд трафика, если он только что вызвал один раз, или при вызове без параметров прослушивает период, который находится вверху. Опрос, который он делает во время работы, не отражает реального использования сервера с течением времени.

Обход трафика с помощью iftop также накладывает нагрузку на систему, что может быть более или менее значительным в зависимости от объема трафика, поскольку сетевые данные должны быть переданы и обработаны API-интерфейсом pcap.

В то время как отличный инструмент для отладки сетевых проблем и, особенно, осознание конкретных потоков транзита, это не очень хороший инструмент для долгосрочного использования.

Для трафика или пропускной способности я предлагаю использовать SNMP в более профессиональной среде или для более простого использования ifconfig.

Я бы подробно остановился на подробностях, однако я нашел предыдущее сообщение, в котором говорится о мониторинге трафика и скорости более подробно, чем я думал.

Как обработать вывод ifconfig, чтобы определить скорость моей ссылки?

Как окончательная деталь, ничего против iftop, если вы это понимаете

1) просто измеряет мгновенную скорость каждый раз, когда вы запускаете скрипт (каждые 5 минут?)

2) не следует использовать в системах с высокой нагрузкой