admin 管理员组文章数量: 1184232
Linux查看实时网速的shell
What
这是一个可以查看Linux主机实时网速的shell脚本,它能够根据网速自动调整单位以便更好的显示网速。
Why
在工作过程中,会遇到服务器非常卡顿的情况,因为服务器是多人同时使用的,为了全面的分析服务器卡顿的原因,依次检查了CPU、内存、磁盘IO的情况,但是都没有发现明显异常,故想到了诊断网络,以便综合判断服务器状态,于是诞生了这个Shell
How
基本使用方法
./net.sh [网卡]例如:查看网卡eth0的网速:
./net.sh eth0
开启DEBUG
这里仅提供通过修改源码的方式开启DEBUG模式,具体方式为:
对脚本中的DEBUG变量赋任意值
DEBUG=true
Source Code
如需转载,请说明出处
#!/bin/bash#net.sh# about# 此shell用于显示实时网速# author:masterc# date:2021.03.19# version:1.0# 如需开启DEBUG,给DEBUG赋任意值即可
DEBUG=# 计算网速function getRate(){
rate=$1
result="${rate}"if[${rate} -gt 1024 ];then
rate=`expr ${rate} / 1024`
rate_p=`expr ${rate} % 1024`
result="${rate}.${rate_p}"fiecho$result}# 计算量程function getUnit(){
rate=$1
result="KB/s"if[$rate -gt 1024 ];then
result="MB/s"fiecho$result}function main(){# 要监听的网卡
net_card=$1if[!$net_card];thenecho"net card is not selected!"elseecho"net card:$net_card"fi#初始化# awk 'NR==8{print}' : 取ifconfig结果的第8行,可根据ifconfig结果做具体调整# awk -F '[(:]' '{print $4}' : 取上传字节数# awk -F '[(:]' '{print $2}' : 取下载字节数
up_rate1=`ifconfig $net_card |awk'NR==8{print}'|awk -F '[(:]''{print $4}'`
down_rate1=`ifconfig $net_card |awk'NR==8{print}'|awk -F '[(:]''{print $2}'`
up_rate2=0
down_rate2=0
whiletruedosleep 1
up_rate2=`ifconfig $net_card |awk'NR==8{print}'|awk -F '[(:]''{print $4}'`
down_rate2=`ifconfig $net_card |awk'NR==8{print}'|awk -F '[(:]''{print $2}'`# DEBUGif[$DEBUG];thenecho"up_rate1:${up_rate1},down_rate1:${down_rate1}"echo"up_rate2:${up_rate2},down_rate2:${down_rate2}"fi# 取差值
up_rate=`expr $up_rate2 - $up_rate1`
down_rate=`expr $down_rate2 - $down_rate1`# 记录旧值
up_rate1=$up_rate2
down_rate1=$down_rate2# 单位转换 B -> KB
up_rate=`expr $up_rate / 1024`
down_rate=`expr $down_rate / 1024`# \r用于每次输出后将光标重新定位到开头printf"\r[UP:%6.1f %s,DOWN:%6.1f %s]"`getRate $up_rate``getUnit $up_rate``getRate $down_rate``getUnit $down_rate`done}
main $@版权声明:本文标题:轻松玩转网络测试 - Linux中使用脚本快速检测数据传输效率 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1771442754a3544667.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论