Linux下使用shell获取网卡速度统计

代码片段, 折腾 2018/03/25

前段时间学习shell,想要获取当前网卡的速度,于是就写了个这个,原理是获取间隔时间前后的网卡流量,取差值除以间隔

说明:先使用ifconfig查看需要统计速度的网卡名称,如eth0\wlan0等等

再执行

sh speedload.sh 网卡名称

例如截图中的网卡名称为enp3s0

sh speedload.sh enp3s0

需要安装bc

#CentOS
yum install bc -y
#Debian、Ubuntu
sudo apt-get install bc -y

代码如下,获取到的速度单位为字节,根据需要再换算为其他单位

#!/bin/bash
#间隔,单位秒
interval=2
#获取网卡参数
if [ "$1" = "" ];then
	echo "Wrong parameter"
	exit -1
fi
#读取网卡信息
file=/proc/net/dev
while true
	do
	TX_first=`cat $file|grep $1|sed 's/^ *//g'|awk -F'[ :]+' '{print $10}'`
	sleep $interval
	TX_secend=`cat $file|grep $1|sed 's/^ *//g'|awk -F'[ :]+' '{print $10}'`
	Speed_Bytes=`echo "scale=2;($TX_secend - $TX_first)/$interval"|bc`
	echo $Speed_Bytes
done
本文标签:


评论(*号为必填项)