使用脚本轻松消耗流量

这两年来,国内各大运营商打击PCDN的力度越来越大了,虽然我没搞PCDN,但是因为玩PT已经在外面使用家里的NAS,也被误伤了一锤。在自行限制了上传速度后,还是不太放心,听闻会检测上下行流量的比例来判断是否为PCDN,于是写了这个脚本来浪费一些下载流量

系统: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