网卡流量监控脚本

Posted on Posted in 监控
Tips: 本文创建于2015年12月18日,已超过 2 年,内容或图片可能已经失效!

## 支持G级的网卡流量监控

> 监控原理

* /sys/class/net/eth0/statistics/rx_packets: 收到的数据包数据
* /sys/class/net/eth0/statistics/tx_packets: 传输的数据包数量
* /sys/class/net/eth0/statistics/rx_bytes: 接收的字节数
* /sys/class/net/eth0/statistics/tx_bytes: 传输的字节数
* /sys/class/net/eth0/statistics/rx_dropped: 当收到包数据包下降的数据量
* /sys/class/net/eth0/statistics/tx_dropped: 传输包数据包下降的数据量

> 测量网口每秒数据包

  1. #!/bin/bash  
  2.   
  3. INTERVAL="1"  # update interval in seconds  
  4.   
  5. if [ -z "$1" ]; then  
  6.         echo  
  7.         echo usage: $0 [network-interface]  
  8.         echo  
  9.         echo e.g. $0 eth0  
  10.         echo  
  11.         echo shows packets-per-second  
  12.         exit  
  13. fi  
  14.   
  15. IF=$1  
  16.   
  17. while true  
  18. do  
  19.         R1=`cat /sys/class/net/$1/statistics/rx_packets`  
  20.         T1=`cat /sys/class/net/$1/statistics/tx_packets`  
  21.         sleep $INTERVAL  
  22.         R2=`cat /sys/class/net/$1/statistics/rx_packets`  
  23.         T2=`cat /sys/class/net/$1/statistics/tx_packets`  
  24.         TXPPS=`expr $T2 - $T1`  
  25.         RXPPS=`expr $R2 - $R1`  
  26.         echo "TX $1: $TXPPS pkts/s RX $1: $RXPPS pkts/s"  
  27. done  

> 网络带宽测量

  1. #!/bin/bash  
  2.   
  3. INTERVAL="1"  # update interval in seconds  
  4.   
  5. if [ -z "$1" ]; then  
  6.         echo  
  7.         echo usage: $0 [network-interface]  
  8.         echo  
  9.         echo e.g. $0 eth0  
  10.         echo  
  11.         exit  
  12. fi  
  13.   
  14. IF=$1  
  15.   
  16. while true  
  17. do  
  18.         R1=`cat /sys/class/net/$1/statistics/rx_bytes`  
  19.         T1=`cat /sys/class/net/$1/statistics/tx_bytes`  
  20.         sleep $INTERVAL  
  21.         R2=`cat /sys/class/net/$1/statistics/rx_bytes`  
  22.         T2=`cat /sys/class/net/$1/statistics/tx_bytes`  
  23.         TBPS=`expr $T2 - $T1`  
  24.         RBPS=`expr $R2 - $R1`  
  25.         TKBPS=`expr $TBPS / 1024`  
  26.         RKBPS=`expr $RBPS / 1024`  
  27.         echo "TX $1: $TKBPS kb/s RX $1: $RKBPS kb/s"  
  28. done  
» 转载请注明来源:若我若鱼 » 网卡流量监控脚本

Leave a Reply

Your email address will not be published. Required fields are marked *

seventeen + nine =