1. 脚本内容编写如下
#!/bin/bash
#死循环
while :
do
#获取ens32网卡当前流入和流出的流量
rx_net1=$(ifconfig ens32 | awk '/RX packets/{print $5}')
tx_net1=$(ifconfig ens32 | awk '/TX packets/{print $5}')
sleep 1
#获取ens32网卡1s后流入和流出的流量
rx_net2=$(ifconfig ens32 | awk '/RX packets/{print $5}')
tx_net2=$(ifconfig ens32 | awk '/TX packets/{print $5}')
#计算ens32网卡每秒流入和流出的流量
rx_net=$[($rx_net2-$rx_net1)/1024/1024]
tx_net=$[($tx_net2-$tx_net1)/1024/1024]
#输出计算结果
echo "上传速度为:$rx_net MB/S,下载速度为:$tx_net MB/S"
done
注:
TX是发送(transport)的流量,RX是接收(receive)的流量
2. 测试脚本
[root@host-137 ~]#sh packets.sh
上传速度为:56 MB/S,下载速度为:0 MB/S
上传速度为:59 MB/S,下载速度为:0 MB/S
上传速度为:51 MB/S,下载速度为:0 MB/S
上传速度为:0 MB/S,下载速度为:78 MB/S
上传速度为:0 MB/S,下载速度为:77 MB/S