讲师中心 微信公众号
AI工具推荐 视频效率加速

如何编写带断点续传能力的自动备份拉取脚本应对跨国高丢包恶劣物理网络环境

千婷酱_3823

千婷酱_3823

发布时间:2026-07-05 13:46:53

|

348人浏览过

|

来源于php中文网

原创

rsync支持断点续传,核心是--partial保留中断文件、双端块级校验比对差异、配合SSH健壮参数(如ServerAliveInterval)及超时控制,实现真正可恢复传输。

如何编写带断点续传能力的自动备份拉取脚本应对跨国高丢包恶劣物理网络环境

在跨国高丢包、高延迟、连接不稳定的网络环境下,普通 rsync 或 wget 拉取备份容易因超时或中断失败,且重试成本高。关键不是“重试”,而是“可恢复”——即每次传输中断后,能从断点继续,不重复下载已成功接收的数据块。

用 rsync + SSH 配置断点续传拉取(推荐首选)

rsync 本身支持增量同步和部分传输恢复,配合合理参数可在丢包环境中稳定工作:

  • 使用 --partial:保留传输中断时的不完整文件,下次继续写入而非重下
  • 启用 --progress 和 --stats 方便监控;加 --timeout=60 避免单次卡死过久
  • 通过 -e "ssh -o ConnectTimeout=15 -o ServerAliveInterval=30 -o ServerAliveCountMax=3" 强化 SSH 层健壮性
  • 务必加 --delete-after(慎用 --delete),避免误删本地已有但远程暂未同步完的文件
  • 示例命令:
    rsync -avz --partial --timeout=60 -e "ssh -o ConnectTimeout=15 -o ServerAliveInterval=30" user@remote:/backup/20240601/ /local/backup/

对大文件用 wget 或 curl 分块+校验续传

当目标是单个超大备份文件(如数据库 dump),rsync 可能受限于远程文件系统不支持硬链接或无 rsync daemon。此时用 wget 或 curl 更直接:

  • wget -c -t 0 --retry-connrefused --wait=2 --random-wait URL
    -c 启用断点续传,-t 0 无限重试,--retry-connrefused 对连接拒绝也重试
  • curl -C - --retry 10 --retry-delay 3 --max-time 600 -o file.zip URL
    -C - 表示从本地文件当前大小处继续,需确保文件名不变且未被其他进程修改
  • 建议搭配 SHA256 校验:先拉取 file.zip.sha256,下载完成后 sha256sum -c file.zip.sha256 验证完整性,失败则自动清理重试

封装为带状态跟踪与自动重试的 shell 脚本

单纯命令不够,需记录进度、控制并发、避免雪崩重试:

  • 用临时标记文件(如 .fetching.lock 和 .fetched.sha256)标识当前任务状态
  • 每次运行前检查本地文件是否存在且校验通过,跳过已完成项
  • 设置指数退避重试:第1次等5秒,第2次等15秒,第3次等45秒……避免密集刷请求加重网络负担
  • 日志中记录每次 start/end 时间、传输字节数、退出码,便于事后分析丢包时段规律
  • 可加入简单熔断逻辑:连续3次超时后暂停1小时,防止无效轮询耗尽资源

补充增强策略(非必须但强烈建议)

物理层不可控,但可优化协议层和调度层应对:

  • 让远端开启 rsync daemon(非 SSH 模式),使用 --port 指定非标准端口,减少被中间防火墙 reset 的概率
  • 在远端压缩备份(如 tar -czf),拉取后再解压,降低传输量和失败窗口
  • 若允许,将备份推送到近地 CDN 或对象存储(如 AWS S3 / 阿里 OSS),再从就近节点拉取,绕过直连跨国链路
  • 定期用 mtr 或 ping -R 抓取路由路径变化,发现劣化节点后协调 ISP 或切换隧道出口

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3950

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3373

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2533

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6130

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5782

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3393

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2885

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3119

2023.07.25

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn