admin 2026-07-18 11:47:15 礼包中心

系统:Debian12

最初是想使用Speedtest测速来消耗流量的,但是发现官方的Speedtest-cli无法只测下载不测上传,所以就自己写了个脚本下载文件来消耗流量

想到有什么大文件能随便下载,就突然想到了“原神”,虽然没玩过,但是这个游戏体积贼大还是知道的。最后,就有了这个脚本

(嘛,稍微薅一点人家的CDN就行了,别一直在那儿下载就好)

脚本内容

mian.sh

#!/bin/bash

# 定义日志文件的路径

log_file="download_log.txt"

# 定义要下载的文件的URL列表,会依次下载,可以自行添加或删除

urls=(

"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230804185703_R1La3H9xIH1hBiHJ/YuanShen_4.0.0.zip" # 原神4.0游戏本体(56.15G)

"https://autopatchcn.yuanshen.com/client_app/download/pc_zip/20230804185703_R1La3H9xIH1hBiHJ/Audio_Chinese_4.0.0.zip" # 原神中文语音包(10.45G)

"https://autopatchcn.yuanshen.com/client_app/download/launcher/20240314153152_0AZRlFRox2kHeTKf/mihoyo/yuanshen_setup_20240313190827.exe" # 原神PC启动器(140M)

)

# 记录脚本开始运行的时间

start_time=$(date +"%Y-%m-%d %H:%M:%S")

echo "下载开始时间: $start_time" >> "$log_file"

# 遍历URL列表,下载每个文件并记录相关信息

for url in "${urls[@]}"; do

echo "正在下载 $url..." >> "$log_file"

# 使用curl下载文件并获取文件大小(字节),同时检查是否成功执行

size_bytes=$(curl -s -w "%{size_download}" -o /dev/null "$url")

# 检查是否成功获取到文件大小

if [[ $size_bytes -eq 0 ]]; then

echo "下载失败或文件为空 $url " >> "$log_file"

else

# 将文件大小从字节转换为GB并保留6位小数

size_gb=$(awk "BEGIN {print $size_bytes / 1024 / 1024 / 1024}")

echo "已下载 $url 文件大小: ${size_gb} GB" >> "$log_file"

fi

done

# 记录脚本结束运行的时间

end_time=$(date +"%Y-%m-%d %H:%M:%S")

echo "下载完成时间: $end_time" >> "$log_file"

echo "==============================================="

设置可执行权限

chmod +x main.sh

定时执行

使用命令编辑定时任务

crontab -e

在最后面新加一行

0 */12 * * * cd "/home/debian/waste_downstream_traffic" && ./main.sh > /dev/null

其中前面的时间格式为 m h dom mon dow 即 分,时,日,月,周(可以参考 Wiki)

像上面的写法,就是每十二小时会执行一次(本来打算是设置在凌晨的,但是试了试下载速度并不算很快,一千兆的带宽只能跑到三百多Mbps,所以也就没挑时间)

最后修改于 2024-04-10