http://www.oschina.net/code/snippet_20912_2989
实时查看linux网卡流量
将下列脚本保存为可执行脚本文件,比如叫traff.sh。
1、本脚本可自定义欲查看接口,精确到小数,并可根据流量大小灵活显示单位。
2、此脚本的采集间隔为1秒。
3、此脚本不需要额外再安装软件,可在急用情况下应付一下,比如临时想看一下是否有流量通过,大概为多少等。
4、一些流量查看软件由于计算的精确度不同,所以与此脚本显示的数值不可能一致,此脚本的显示结果与du meter对比过,相差很小。还有就是传输工具本身显示的传输速度并不准确。
用法为:
1、chmod +x ./traff.sh 将文件改成可执行脚本。
2、./traff.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。
1、本脚本可自定义欲查看接口,精确到小数,并可根据流量大小灵活显示单位。
2、此脚本的采集间隔为1秒。
3、此脚本不需要额外再安装软件,可在急用情况下应付一下,比如临时想看一下是否有流量通过,大概为多少等。
4、一些流量查看软件由于计算的精确度不同,所以与此脚本显示的数值不可能一致,此脚本的显示结果与du meter对比过,相差很小。还有就是传输工具本身显示的传输速度并不准确。
用法为:
1、chmod +x ./traff.sh 将文件改成可执行脚本。
2、./traff.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。
01 | #!/bin/bash |
02 | while [ "1" ] |
03 | do |
04 | eth=$1 |
05 | RXpre=$( cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}' ) |
06 | TXpre=$( cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}' ) |
07 | sleep 1 |
08 | RXnext=$( cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}' ) |
09 | TXnext=$( cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}' ) |
10 | clear |
11 | echo -e "\t RX `date +%k:%M:%S` TX" |
12 | RX=$((${RXnext}-${RXpre})) |
13 | TX=$((${TXnext}-${TXpre})) |
14 | |
15 | if [[ $RX - lt 1024 ]]; then |
16 | RX= "${RX}B/s" |
17 | elif [[ $RX - gt 1048576 ]]; then |
18 | RX=$( echo $RX | awk '{print $1/1048576 "MB/s"}' ) |
19 | else |
20 | RX=$( echo $RX | awk '{print $1/1024 "KB/s"}' ) |
21 | fi |
22 | |
23 | if [[ $TX - lt 1024 ]]; then |
24 | TX= "${TX}B/s" |
25 | elif [[ $TX - gt 1048576 ]]; then |
26 | TX=$( echo $TX | awk '{print $1/1048576 "MB/s"}' ) |
27 | else |
28 | TX=$( echo $TX | awk '{print $1/1024 "KB/s"}' ) |
29 | fi |
30 | |
31 | echo -e "$eth \t $RX $TX " |
32 | done |