для диагностики иногда требуется получить количество пакетов в секунду получаемый сетевой картой.
Количество полученных пакетов, с момента запуска системы можно посмотреть с помощью команды
1 | cat /proc/net/dev |
Соответственно, для получения количества пакетов в секунду, в текущий момент, необходимо получить данный параметр дважды и найти разницу между ними, сделал соответствующую задержку.
1 2 3 4 5 | pkt_old=`grep ens3: /proc/net/dev | cut -d : -f2 | awk '{ print $2 }'` sleep 1 pkt_new=`grep ens3: /proc/net/dev | cut -d : -f2 | awk '{ print $2 }'` echo $(( $pkt_new - $pkt_old )) |
Для постоянного мониторинга, используем следующий скрипт
1 2 3 4 5 6 7 8 9 10 11 | #!bin/bash interface=lo while /bin/true; do pkt_old=`grep $interface: /proc/net/dev | cut -d : -f2 | awk '{ print $2 }'` sleep 1 pkt_new=`grep $interface: /proc/net/dev | cut -d : -f2 | awk '{ print $2 }'` pkt=$(( $pkt_new - $pkt_old )) echo -ne "\r$pkt packets/s\033[0K" done |
Где interface - имя сетевого интерфейса, для мониторинга.