Linux流量监控工具iftop和nload浅析


因为做Linux常常会要做Linux流量监控的流量查看,Linux流量监控还是比较常用的,于是我研究了一下Linux流量监控的一些方法,在这里拿出来和大家分享一下,希望对大家有用。下面的三个方法能很好的解决当前流量查看

Linux流量监控的iftop工具

用途: 用来即时监看网路状态和各ip所使用的频宽

执行(必须以root身份)
监控eth1的网卡的流量
# iftop -i eth1

以位元组(bytes)为单位显示流量(预设是位元bits):
$ iftop -B

直接显示IP, 不进行DNS反解:
$ iftop -n

直接显示连接埠编号, 不显示服务名称:
$ iftop -N

显示某个网段进出封包流量
$ iftop -F 192.168.1.0/24 or 192.168.1.0/255.255.255.0

其他参数可下 iftop -h 看说明.

进入iftop画面时, 可按 p 切换是否显示连接埠, n 切换显示IP或主机的domain name, N切换显示连接埠代号或名称, p暂停显示, b切换是否显示长条, B切换计算几秒内的平均流量, 其他按键可以按h观看说明.
設定檔的位置在~/.iftoprc , 關於設定檔的寫法可以參考 iftop 的 info page.

Linux流量监控的nload工具

用途: 用来即时监看网路状态和各ip所使用的频宽(很废话了)
nload默认的是eth0网卡,如果你想监测eth1网卡的流量
#nload eth1

nload 默认分为上下两块:上半部分是:Incoming也就是进入网卡的流量,下半部分是:Outgoing,也就是从这块网卡出去的流量,每 部分都有当前流量Curr),平均流量Avg),最小流量Min),最大流量Max),总和流量Ttl)这几个部分,看起来还是蛮直观的。
另外,你也可以自己定义流量数值显示的单位
#nload --help
就可以看到具体的相关参数了。

查看网络平均流量

下面的脚本可以很好的监控你的网络的平均流量,你可以提定时间
 

  1. #!/bin/bash  
  2. echo -n "which nic?"  
  3. read eth  
  4. echo "the nic is "$eth  
  5. echo -n "how much seconds:"  
  6. read sec  
  7. echo "duration is "$sec" seconds, wait please..."  
  8. infirst=$(awk '/'$eth'/{print $1 }' /proc/net/dev |sed 's/'$eth'://')  
  9. outfirst=$(awk '/'$eth'/{print $10 }' /proc/net/dev)  
  10. sumfirst=$(($infirst+$outfirst))  
  11. sleep $sec"s"  
  12. inend=$(awk '/'$eth'/{print $1 }' /proc/net/dev |sed 's/'$eth'://')  
  13. outend=$(awk '/'$eth'/{print $10 }' /proc/net/dev)  
  14. sumend=$(($inend+$outend))  
  15. sum=$(($sumend-$sumfirst))  
  16. echo $sec" seconds total :"$sum"bytes"  
  17. aver=$(($sum/$sec))  
  18. echo "avrage :"$aver"bytes/sec" 

相关内容