Linux 查看实时网卡流量的方法 nload sar iftop

风流意气都作罢 提交于 2020-01-07 23:21:19

 

 1.使用nload

yum install -y gcc gcc-c++ ncurses-devel make wgetwget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gztar zxf nload-0.7.4.tar.gz && cd nload-0.7.4 &&  ./configure && make && make install # nload ens33

 有图形界面显示,比较直观

  

2.sar 计量脚本

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。

yum -y install sysstat

 # cat flow
#!/bin/bash
ethn=$1

while true
do
  RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
  TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')
  sleep 1
  RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}')
  TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}')

  clear
  echo -e "\t RX `date +%k:%M:%S` TX"

  RX=$((${RX_next}-${RX_pre}))
  TX=$((${TX_next}-${TX_pre}))

  if [[ $RX -lt 1024 ]];then
    RX="${RX}B/s"
  elif [[ $RX -gt 1048576 ]];then
    RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
  else
    RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
  fi

  if [[ $TX -lt 1024 ]];then
    TX="${TX}B/s"
  elif [[ $TX -gt 1048576 ]];then
    TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
  else
    TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
  fi
  echo -e "$ethn \t $RX   $TX "

done

# bash flow ens33
         RX  5:36:49 TX
ens33    259.268KB/s   2.26172KB/s

 

3.使用iftop

yum -y install flex byacc  libpcap ncurses ncurses-devel libpcap-devel

wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

tar zxvf iftop-0.17.tar.gz && cd iftop-0.17

./configure && make && make install

# iftop

更新 wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz -c


 白色的就是当前网速的进度条了

iftop虽然也有图形化,但是无效内容太多,单一需求使用nload比较方便

 

Reference:

Linux查看实时网卡流量的几种方式

Linux流量监控工具 - iftop (最全面的iftop教程)

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!