Linux下使用shell获取网卡速度统计
前段时间学习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
一条评论