不用安装其他软件,使用linux系统本身的统计信息就可以监控网卡的流量。

#!/bin/bash

if [ -z "$1" ]; then
echo usage: $0 network-interface
echo e.g. $0 eth0
echo
echo network-interfaces:
ifconfig | grep ^[a-z] | awk -F: '{print $1}'
exit
fi

IF=$1
while true
do
R1=`cat /sys/class/net/$1/statistics/rx_bytes`
T1=`cat /sys/class/net/$1/statistics/tx_bytes`
sleep 1
R2=`cat /sys/class/net/$1/statistics/rx_bytes`
T2=`cat /sys/class/net/$1/statistics/tx_bytes`
TBPS=`expr $T2 - $T1`
RBPS=`expr $R2 - $R1`
TKBPS=`expr $TBPS / 1024`
RKBPS=`expr $RBPS / 1024`
echo "tx $1: $TKBPS kb/s rx $1: $RKBPS kb/s"
done

代码比较简单,不在进一步赘述。