|  | 
|  | 
|  2019-08-27, 03:40 PM | #1 | |
| 注册日期: 2003-10-22 
					帖子: 11,054
				 积分:6 精华:24 现金:14351金币 资产:1282954938金币     | 
				
				实时查看linux网卡流量
			 
			
			将下列脚本保存为可执行脚本文件,比如叫traff.sh。  1、本脚本可自定义欲查看接口,精确到小数,并可根据流量大小灵活显示单位。 2、此脚本的采集间隔为1秒。 3、此脚本不需要额外再安装软件,可在急用情况下应付一下,比如临时想看一下是否有流量通过,大概为多少等。 4、一些流量查看软件由于计算的精确度不同,所以与此脚本显示的数值不可能一致,此脚本的显示结果与du meter对比过,相差很小。还有就是传输工具本身显示的传输速度并不准确。 用法为: 1、chmod +x ./traff.sh 将文件改成可执行脚本。 2、./traff.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。 代码: #!/bin/bash  
while [ "1" ]  
do  
eth=$1  
RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')  
TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')  
sleep 1  
RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')  
TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')  
clear  
echo  -e  "\t RX `date +%k:%M:%S` TX"  
RX=$((${RXnext}-${RXpre}))  
TX=$((${TXnext}-${TXpre}))  
   
if [[ $RX -lt 1024 ]];then  
RX="${RX}*8bps"  
elif [[ $RX -gt 1048576 ]];then  
RX=$(echo $RX | awk '{print $1/1048576*8 "Mbps"}')  
else  
RX=$(echo $RX | awk '{print $1/1024*8 "Kbps"}')  
fi  
   
if [[ $TX -lt 1024 ]];then  
TX="${TX}*8bps"  
elif [[ $TX -gt 1048576 ]];then  
TX=$(echo $TX | awk '{print $1/1048576*8 "Mbps"}')  
else  
TX=$(echo $TX | awk '{print $1/1024*8 "Kbps"}')  
fi  
   
echo -e "$eth \t $RX   $TX "  
done | |
|  | ||
|   |   | 
|  2019-08-27, 07:00 PM | #2 | 
| 注册日期: 2003-10-22 
					帖子: 11,054
				 积分:6 精华:24 现金:14351金币 资产:1282954938金币 声望: 395      | 
			
			更方便的方法,Linux查看当前网卡流量 sar –n DEV 1 2 命令后面1 2 意思是:每一秒钟取1次值,取2次。 | 
|   |   |