基于Shell实现的网络测速脚本方案及实现方法,包含基础测速、实时监控、带宽测试三类功能

基于Shell实现的网络测速脚本方案及实现方法,包含基础测速、实时监控、带宽测试三类功能模块:
一、基础网络测速脚本

  1. 网络延迟测试(Ping)
#!/bin/bash
# 测试目标主机的延迟和丢包率‌:ml-citation{ref="1,7" data="citationList"}
TARGET="8.8.8.8"  # 可替换为任意IP或域名
PACKETS=10        # 发送数据包数量

echo "测试目标: $TARGET"
ping_result=$(ping -c $PACKETS -i 0.5 -W 1 $TARGET)
avg_latency=$(echo "$ping_result" | grep rtt | awk '{print $4}' | cut -d '/' -f 2)
loss_rate=$(echo "$ping_result" | grep loss | awk '{print $6}' | tr -d '%')

echo "平均延迟: ${avg_latency}ms"
echo "丢包率: ${loss_rate}%"

输出示例:

测试目标: 8.8.8.8  
平均延迟: 25.4ms  
丢包率: 0%

  1. 带宽测试(Speedtest-cli)
#!/bin/bash
# 需提前安装speedtest-cli工具‌:ml-citation{ref="2,8" data="citationList"}
if ! command -v speedtest-cli &> /dev/null; then
    echo "安装speedtest-cli工具..."
    curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
fi

echo "开始带宽测试..."
result=$(speedtest-cli --simple --timeout 10)
download=$(echo "$result" | grep Download | awk '{print $2}')
upload=$(echo "$result" | grep Upload | awk '{print $2}')

echo "下载速度: ${download}Mbit/s"
echo "上传速度: ${upload}Mbit/s"

输出示例:

开始带宽测试...  
下载速度: 98.76Mbit/s  
上传速度: 45.32Mbit/s  

二、实时网速监控脚本

#!/bin/bash
# 监控指定网卡的实时传输速率‌:ml-citation{ref="5,6" data="citationList"}
eth="eth0"  # 替换为实际网卡名

echo "监控网卡: $eth (按Ctrl+C退出)"
while true; do
    RX_pre=$(cat /proc/net/dev | grep $eth | sed 's/:/ /g' | awk '{print $2}')
    TX_pre=$(cat /proc/net/dev | grep $eth | sed 's/:/ /g' | awk '{print $10}')
    sleep 1
    RX_next=$(cat /proc/net/dev | grep $eth | sed 's/:/ /g' | awk '{print $2}')
    TX_next=$(cat /proc/net/dev | grep $eth | sed 's/:/ /g' | awk '{print $10}')
    
    # 计算差值并转换单位
    RX=$((RX_next - RX_pre))
    TX=$((TX_next - TX_pre))
    RX_hr=$(numfmt --to=iec $RX)
    TX_hr=$(numfmt --to=iec $TX)
    
    printf "[%s] RX: %-8s TX: %-8s\\n" "$(date +%T)" "$RX_hr/s" "$TX_hr/s"
done

输出示例:

[14:23:05] RX: 1.2MB/s   TX: 560KB/s  
[14:23:06] RX: 980KB/s   TX: 320KB/s  

三、定时任务配置日志记录

通过crontab -e添加定时任务,每30分钟执行测速并记录日志‌:

*/30 * * * * /path/to/speedtest_script.sh >> /var/log/speedtest.log 2>&1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值