Такие инструменты, как MRTG, предоставляют графики пропускной способности / пропускной способности сети для текущего использования сети на определенных интерфейсах, таких как eth0. Как я могу вернуть эту информацию в командной строке в Linux / UNIX?
Предпочтительно это было бы без установки чего-либо, кроме того, что доступно в системе в стандартной комплектации.
linux
networking
bandwidth
Дэвидмиттон
источник
источник
bmon
что полезно. github.com/tgraf/bmon#screenshotsОтветы:
Вы можете проанализировать вывод
ifconfig
источник
while true; do export `ifconfig p1p1 | grep packets | awk '{print $5, $3}' | xargs echo | sed -E -e "s/([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/rx=\1 rxp=\2 tx=\3 txp=\4/"` ; echo $rx $rxp $tx $txp `cat /tmp/netstat` | awk '{print $1-$5, $2-$6, $3-$7, $4-$8}';echo $rx $rxp $tx $txp > /tmp/netstat; sleep 5 ;done
-bash: export:
строка приводит к переполнению: 0 ': недопустимый идентификатор` для меня на RHEL6. Парсинг/sys/class/net/$dev/statistics
(см. Сценарий perl в ответе @ephemient) напрямую работает намного лучше.iftop does for network usage what top(1) does for CPU usage
- http://www.ex-parrot.com/~pdw/iftop/Я не знаю, насколько iftop «стандартен», но мне удалось установить его
yum install iftop
в Fedora.источник
iftop
может быть установлен на чистой Ubuntu установить легко , а также:apt-get install iftop
.pacman -S iftop
tcpdump
снова откладываю обучение синтаксическому анализу вывода. Спасибоiftop
иwireshark
за то, что позволили мне быть таким ленивым.iftop
он более подробный и дает статистику по соединениям.iftop
требует установки (вы даже не сможете собрать его безlibpcap
установки), и на его домашней странице говорится, что он должен запускаться подroot
.Получил сар? Скорее всего, да, если вы используете RHEL / CentOS.
Нет необходимости в приватных, глупых двоичных файлах, хакерских скриптах, libpcap и т. Д. Win.
источник
Я написал этот тупой скрипт очень давно, он ни от чего не зависит, кроме Perl и Linux≥2.6:
Он просто читает
/sys/class/net/$dev/statistics
каждую секунду и распечатывает текущие числа и среднюю скорость изменения:источник
/proc/net/dev
или вычислять данные в секунду или как-то иначе?nload - отличный инструмент для мониторинга пропускной способности в реальном времени, который легко устанавливается в Ubuntu или Debian с помощью sudo apt-get install nload.
Еще один отличный инструмент - iftop , также легко доступный:
Не забывайте о классических и мощных утилитах sar и netstat в старых версиях * nix!
источник
Вы можете разобрать / proc / net / dev .
источник
/sys/class/net/$dev/statistics
как в сценарии ephemient.dstat
- Объединяет информацию vmstat, iostat, ifstat, netstat и многое другоеiftop
- Удивительная утилита пропускной способности сети для анализа того, что на самом деле происходит на вашем канале.netio
- Измеряет чистую пропускную способность сети через TCP / IP.inq
- Утилита устранения неполадок CLI, которая отображает информацию о хранилище, обычно Symmetrix. По умолчанию INQ возвращает имя устройства, идентификатор Symmetrix, LUN Symmetrix и емкость.send_arp
- Отправляет широковещательное сообщение arp на указанное сетевое устройство (по умолчанию eth0), сообщая о сопоставлении старого и нового IP-адреса с MAC-адресом.EtherApe
- графический сетевой монитор для Unix по образцу etherman. Имея канальный уровень, режимы IP и TCP, он графически отображает сетевую активность.iptraf
- Монитор IP-трафика, который показывает информацию об IP-трафике, проходящем по вашей сети.Подробнее: http://felipeferreira.net/?p=1194
источник
Для этого у меня есть еще один быстрый и грязный скрипт:
Учитывая, что
sleep 1
самом деле это продлится ровно одну секунду, что неверно, но достаточно хорошо для приблизительной оценки пропускной способности.Спасибо @ephemient за
/sys/class/net/<interface>
! :)источник
let BWRX=($RX-$RXPREV)/1024
(хотя мне сейчас нечего тестировать)Помимо iftop и iptraf также проверьте:
bwm-ng
(Монитор пропускной способности следующего поколения)и / или
cbm
(Измеритель полосы пропускания цвета)ссылка: http://www.powercram.com/2010/01/bandwidth-monitoring-tools-for-ubuntu.html
источник
Если вы хотите просто получить значение, вы можете использовать простую оболочку oneliner следующим образом:
Он покажет вам среднее количество «полученных байтов в секунду» за период 10 секунд (вы можете изменить период, изменив
S=10
параметр, и вы можете измерить переданные биты в секунду вместо полученных, используяtx_bytes
вместоrx_bytes
). Не забывай менятьeth0
на сетевое устройство, которое хотите контролировать.Конечно, вы не ограничены отображением средней скорости (как упоминалось в других ответах, есть другие инструменты, которые покажут вам гораздо более приятный результат), но это решение легко можно использовать в сценариях для выполнения других задач.
Например, следующий сценарий оболочки (разделенный на несколько строк для удобства чтения) будет выполнять процесс offlineimap только тогда, когда 5-минутная средняя скорость передачи упадет ниже 10 кбит / с (предположительно, когда завершится какой-либо другой процесс, потребляющий полосу пропускания):
Обратите внимание, что
/sys/class/...
это специфично для Linux (что нормально, поскольку отправитель выбралlinux
тег) и требует неархаичного ядра. Сам код оболочки совместим с / bin / sh (поэтому будут работать не только bash, но и dash и другие реализации / bin / sh), а / bin / sh - это то, что действительно всегда устанавливается.источник
Мне нравится,
iptraf
но вам, вероятно, придется его установить, и, похоже, он больше не поддерживается активно.источник
Я считаю, что dstat неплох. Хотя должен быть установлен. Предоставляет вам гораздо больше информации, чем вам нужно. Netstat даст вам скорость пакетов, но не пропускную способность. netstat -s
источник
Вы можете использовать iperf для оценки производительности сети ( максимально возможной пропускной способности ). См. Следующие ссылки для получения подробной информации:
http://en.wikipedia.org/wiki/Iperf
https://iperf.fr/
https://code.google.com/p/iperf/
источник
Мне не удалось заставить сценарий синтаксического анализа ifconfig работать для меня на AMI, поэтому заставил его работать, измеряя полученный трафик в среднем за 10 секунд
Извините, это было так дешево и противно, но это сработало!
источник
Если вам нужен вывод (ifconfig -a) в формате json, вы можете использовать это (python)
источник