while :; do OLD=$NEW; NEW=`cat /proc/net/dev | grep eth0 | tr -s ' ' | cut -d' ' -f "3 11"`; echo $NEW $OLD | awk '{printf("\rin: % 9.2g\t\tout: % 9.2g", ($1-$3)/1024, ($2-$4)/1024)}'; sleep 1; done
Данная команда позволяет посмотреть скорость приема и передачи данных по сетевому интерфейсу eth0 в кб/сек.
Объяснение команды:
— while :; do ... done
: создает бесконечный цикл, в котором выполняется команда, описанная между do
и done
— OLD=$NEW;
: сохраняет предыдущее значение скорости в переменную OLD
— NEW=\
cat /proc/net/dev | grep eth0 | tr -s ‘ ‘ | cut -d’ ‘ -f «3 11″\;
: выводит информацию о сетевом интерфейсе eth0, обрабатывает ее tr
и cut
, и сохраняет полученное значение в переменную NEW
— echo $NEW $OLD | awk '{printf("\rin: % 9.2g\t\tout: % 9.2g", ($1-$3)/1024, ($2-$4)/1024)}';
: выводит текущую скорость приема и передачи данных по интерфейсу eth0, используя значения в переменных NEW
и OLD
, и использует awk
для расчета и форматирования скоростей в кб/сек
— sleep 1;
: приостанавливает выполнение команды на 1 секунду.
Альтернативный способ узнать скорость интерфейса может быть использование команды iftop
. Эта утилита позволяет мониторить трафик на сетевом интерфейсе в реальном времени и выводить его в удобочитаемом формате.