You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本下载52k文件遇429错误,如何每5次下载后暂停X时长?

解决wget请求频繁导致429错误的脚本优化方案

嘿,遇到429错误太正常啦——这是服务器在提醒你请求发得太密集啦!咱们给循环加个简单的计数器,每下载5个文件就暂停一会儿,就能轻松避开这个限制。

修改后的脚本如下:

# 先设置好暂停时长,把10改成你需要的秒数就行
PAUSE_DURATION=10
count=0

for i in {1..52000}; do
    # 保留你原来的断点续传下载命令
    wget -c "download.hebrewbooks.org/downloadhandler.ashx?req=$i"
    
    # 每完成一次下载,计数器加1
    count=$((count + 1))
    
    # 检查是否刚完成第5、10、15...个文件,是的话就暂停
    if [ $((count % 5)) -eq 0 ]; then
        echo "已下载5个文件,暂停${PAUSE_DURATION}秒..."
        sleep $PAUSE_DURATION
    fi
done

几个实用小细节:

  • 你可以根据服务器的严格程度调整PAUSE_DURATION的数值,比如限制严就设成30秒,宽松的话5秒也可能够用,多试几次就能找到合适的间隔
  • 不管下载成功还是失败,计数器都会正常累加——毕竟哪怕请求失败,服务器也已经收到你的请求并计入频率统计了
  • 如果想避免固定间隔被服务器识别成脚本,还可以把暂停改成随机时长,比如把sleep $PAUSE_DURATION换成sleep $((RANDOM % 5 + PAUSE_DURATION)),这样每次暂停时长是PAUSE_DURATION到PAUSE_DURATION+4之间的随机数

内容的提问来源于stack exchange,提问作者Chasidish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 11:48:13