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

3064
Alex

Я делаю школьный проект, в котором я хочу получить пропускную способность сетевого интерфейса в любую секунду или в какой-то другой небольшой промежуток времени. Мне это нужно для сценария Perl, над которым я работаю. Поэтому он должен быть неинтерактивным и просто печатать результаты.

Какие-либо предложения?

3

2 ответа на вопрос

3
Gilles

Количество байтов, отправленных и полученных eth0с момента запуска интерфейса, может быть считано /sys/class/net/eth0/statistics/tx_bytesи /sys/class/net/eth0/statistics/rx_bytesсоответственно. Количество пакетов можно прочитать в …/tx_packetsи …/rx_packets. Если у вас более старое ядро, которое не предоставляет эти файлы, данные доступны в выводе /sbin/ifconfig eth0.

Именно то, что я искал. Alex 13 лет назад 0
0
vtest

Простой подход был бы:

  • выполнить ifconfiginterface name один раз, захватить его вывод
  • извлечь значения из "байтов RX" и "байтов TX"
  • подождите одну секунду
  • повторите первые два шага снова
  • вычислить дельты
Хороший ответ тоже! Решение Жиля просто идеально работает в моем случае. Alex 13 лет назад 0