
正文
shell小脚本--网速监控
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在windows中,我们可以在360等管家软件中显示网速,在linux下想要查看实时的网速怎么办呢?当然在linux下也有很多优秀的软件可以实时显示网络状况!但是在这里我们使用shell脚本来先完成网络上传与下载流量的实时显示:
思路:
在执行ifconfig查看网卡信息的时候,可以看到以下内容:
$ ifconfig wlp2s0
wlp2s0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::a67b:d8cd:4fab:56bb prefixlen scopeid 0x20<link>
ether b8:ee::1f:a0:d7 txqueuelen (以太网)
RX packets bytes (211.8 MB)
RX errors dropped overruns frame
TX packets bytes (13.8 MB)
TX errors dropped overruns carrier collisions
这里有一些字段,字段详细的内容可以百度搜索。在这里我们用到RX与TX字段里的bytes值。
RX:接收的
TX:上传的
版本一:
#!/bin/bash
# version 12017-08-14while true
do
#记录初始bytes数目
down_speed_old=`ifconfig wlp2s0 | sed -n 's/RX.*bytes \([0-9]\+\).*/\1/p'`
up_speed_old=`ifconfig wlp2s0 | sed -n 's/TX.*bytes \([0-9]\+\).*/\1/p'` sleep #保存最新的bytes数目
down_speed_now=`ifconfig wlp2s0 | sed -n 's/RX.*bytes \([0-9]\+\).*/\1/p'`
up_speed_now=`ifconfig wlp2s0 | sed -n 's/TX.*bytes \([0-9]\+\).*/\1/p'` #计算下行与上行的网速
down_speed=`echo "($down_speed_now-$down_speed_old)/1024"|bc`
up_speed=`echo "($up_speed_now-$up_speed_old)/1024"|bc` echo -e "speed : \n\tDN : $[(($down_speed_now-$down_speed_old))] B/s \t $down_speed KB/s"
echo -e "\tUP : $[(($up_speed_now-$up_speed_old))] B/s \t $up_speed KB/s"
done
运行效果:
$ ./netspeed.sh
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
TODO:
版本二:





![【电子书】[职业技术] 《Linux命令行与shell脚本编程大全(第3版)》[Richard Blum][epub+mobi+azw3] 【电子书】[职业技术] 《Linux命令行与shell脚本编程大全(第3版)》[Richard Blum][epub+mobi+azw3]](https://www.04ip.com/template/qe/style/noimg/9.jpg)

