vim flow.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #!/bin/bash #caishzh 20121030 #displays the current Traffic ETH=$1 ETH=${ETH:-eth0} IP=`ifconfig $ETH|awk -F '[ :]+' '/inet addr/{print $4}'` while true;do let I+=1 NOW=`date +"%F %T"` TX1=`grep $ETH /proc/net/dev | tr : " " | awk '{print $10}'` RX1=`grep $ETH /proc/net/dev | tr : " " | awk '{print $2}'` sleep 1 TX2=`grep $ETH /proc/net/dev | tr : " " | awk '{print $10}'` RX2=`grep $ETH /proc/net/dev | tr : " " | awk '{print $2}'` let TX=(TX2-TX1)/1024 let RX=(RX2-RX1)/1024 let TX_TOTAL+=$TX let RX_TOTAL+=$RX let TX_AVERAGE=TX_TOTAL/${I} let RX_AVERAGE=RX_TOTAL/${I} clear printf "%10s\t%20s\n" "Device $ETH [$IP]" "$NOW" echo "=============================================================" printf "%10s\t%20s\t%20s\n" CURRENT: in:${RX}KB/s out:${TX}KB/s printf "%10s\t%20s\t%20s\n" AVERAGE: in:${RX_AVERAGE}KB/s out:${TX_AVERAGE}KB/s printf "%10s\t%20s\t%20s\n" TOTAL: in:${RX_TOTAL}KB out:${TX_TOTAL}KB done
|
脚本默认显示eth0的流量,如果要显示其它网卡的流量,请在脚本后接网卡名,如:
./flow.sh eth1

另一个版本,就是改了下显示的方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #!/bin/bash #caishzh 20130311 version 2 #displays the current Traffic LANG=C ETH=$1 ETH=${ETH:-eth0} IP=`ifconfig $ETH|awk -F '[ :]+' '/inet addr/{print $4}'` while true;do let I+=1 NOW=`date +"%F %T"` TX1=`grep $ETH /proc/net/dev | tr : " " | awk '{print $10}'` RX1=`grep $ETH /proc/net/dev | tr : " " | awk '{print $2}'` sleep 1 TX2=`grep $ETH /proc/net/dev | tr : " " | awk '{print $10}'` RX2=`grep $ETH /proc/net/dev | tr : " " | awk '{print $2}'` let TX=(TX2-TX1)/1024 let RX=(RX2-RX1)/1024 let TX_TOTAL+=$TX let RX_TOTAL+=$RX let TX_AVERAGE=TX_TOTAL/${I} let RX_AVERAGE=RX_TOTAL/${I} printf "%s \t %30s \t %30s \t %30s\n" "$NOW" "CURRENT: in:${RX}KB/s out:${TX}KB/s" "AVERAGE: in:${RX_AVERAGE}KB/s out:${TX_AVERAGE}KB/s" "TOTAL: in:${RX_TOTAL}KB out:${TX_TOTAL}KB" done
|