Live RX и TX ставки в Linux - PullRequest
2 голосов
/ 13 июля 2009

Я ищу способ программно (будь то вызов библиотеки или автономной программы) отслеживать живой IP-трафик в Linux. Я не хочу итогов, я хочу текущую полосу пропускания, которая используется. Я ищу инструмент, похожий (но не графический) на монитор сетевого трафика OS X в меню istat.

Я вполне уверен, что что-то подобное существует, но я не уверен, где искать, и я бы не стал изобретать велосипед.

Это так же просто, как контролировать сокет? Или мне нужна утилита, которая обрабатывает много накладных расходов для меня?

Ответы [ 3 ]

9 голосов
/ 13 июля 2009

У нас есть счетчики байтов и пакетов в / proc / net / dev, поэтому:

import time

last={}

def diff(col): return counters[col] - last[iface][col]

while True:
  print "\n%10s: %10s %10s %10s %10s"%("interface","bytes recv","bytes sent", "pkts recv", "pkts sent")
  for line in open('/proc/net/dev').readlines()[2:]:
    iface, counters = line.split(':')
    counters = map(int,counters.split())
    if iface in last:
      print "%10s: %10d %10d %10d %10d"%(iface,diff(0), diff(8), diff(1), diff(9))

    last[iface] = counters

  time.sleep(1)
1 голос
/ 14 июля 2009

Я использую небольшую программу, известную как dstat. Она объединяет множество функций типа stat в 1 быстрый вывод. Очень настраиваемый. Это даст вам текущую пропускную способность сети, а также многое другое.

В linux программа netstat выдаст вам необработанную статистику сети. Вы можете проанализировать эту статистику самостоятельно, чтобы получить значимый вывод (что и делает dstat).

0 голосов
/ 22 апреля 2015

Вы можете получить пропускную способность сети и количество пакетов, используя следующую команду dstat:

dstat -n --net-packets -f 10

Или, если вы хотите контролировать определенные интерфейсы, вы можете сделать:

dstat -n --net-packets -N eth0,wlan0 10

Если вы предпочитаете более обычный bits per second вывод:

dstat -n --net-packets -N eth0,wlan0 --bits 10

Это даст вам 10 секунд в среднем. Если вы предпочитаете выписать это для последующей обработки, вы можете экспортировать в файл CSV, используя:

dstat -n --net-packets -N eth0,wlan0 --bits 10

Dstat поставляется с большим количеством плагинов, чтобы соотнести эти метрики с другими метриками в вашей системе, и это дает вам гибкость, позволяющую добавлять ваши собственные (python) плагины, если вам нужно настроить данные или отслеживать что-то специфическое для вашей среды. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...