Я ищу хороший способ получить текущее общее использование полосы пропускания на машине 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}'