Как получить текущее использование пропускной способности из командной строки, используя встроенные инструменты Linux?

Как получить текущее использование пропускной способности из командной строки, используя встроенные инструменты Linux?

Я ищу хороший способ получить текущее общее использование полосы пропускания на машине Linux. Я пробовал iftop, nethogs, но они не показывают реальное использование полосы пропускания по сравнению с системным монитором; они не подходят для нужд моего проекта. Мне нужна команда, которую я выполняю, и она возвращает текущее использование для загрузки и скачивания и ничего больше.

Я бы также хотел сделать это с помощью собственных инструментов Linux без установки чего-либо. На самом деле, я создаю приложение для мониторинга, и я хочу, чтобы оно могло контролировать компьютеры без необходимости устанавливать что-либо на каждом компьютере, который пользователь хочет контролировать, это было бы здорово!

решение1

Использовать iptraf-http://www.linuxcommand.org/man_pages/iptraf8.html

Это утилита командной строки на основе ncurses, которая может предоставить вам статистику по всем интерфейсам на машине, включая использование полосы пропускания.

решение2

Существует множество инструментов, которые вы можете использовать: nload, bmon, iftop, vnstat, ifstat... и если вы просто хотите получить определенную часть их вывода (например, загрузить и выгрузить), я почти уверен, что вы можете grep// cutзаставить awkвывод работать на вас.

18 команд для мониторинга пропускной способности сети на сервере Linux

решение3

sysstat также собирает сетевую статистику. Если вы выполните "man sar", вы увидите все ресурсы, для которых вы можете хранить исторические данные.

Настройте его, введя в cron команду "/usr/lib/sa/sa1" (или /usr/lib64/sa/sa1) и запустив ее каждый раз, когда вам нужна точка данных (например, каждые 5 минут).

Затем вы можете использовать "sar" для просмотра ваших данных. По умолчанию это сегодня. Вы также можете просматривать исторические данные за период до 30 дней. Вы также можете архивировать свои данные, чтобы хранить их вечно (данные за каждый день составляют около 8 МБ).

Для работы в сети используйте «sar -n».

Замечательный инструмент :)

Пример:

 testlinux:~ # sar -n DEV | head -10
 Linux 2.6.16.60-0.21-default (pCITFileSvr01)    11/07/10

 00:00:01        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
 00:05:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:05:01         eth0      9.95      0.12      1.42      0.02      0.00      0.00      0.00
 00:10:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:10:01         eth0     10.20      0.04      1.44      0.00      0.00      0.00      0.00
 00:15:01           lo      0.00      0.00      0.00      0.00      0.00       0.00      0.00
 00:15:01         eth0     10.32      0.12      1.50      0.02      0.00      0.00      0.00
 00:20:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 testlinux:~ #

решение4

Хорошо, после того, как я провел небольшое исследование, я обнаружил,этотрешение вкратце оно используется netstatдля подведения итогов использования сети. Вот моя измененная команда

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1

Пример вывода:-

RX packets 76639  bytes 73706194 (70.2 MiB)

Измените wlan0имя интерфейса вашей карты, чтобы отфильтровать больше выводимых данных этой команды, например

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1 | awk '{print $6$7}'

Связанный контент