18937134080ccc571@qq.com

大文件迁移方案:rsync同步与断点续传实战

2026-07-211 阅读
数据迁移备份
大文件迁移方案:rsync同步与断点续传实战

一个网站跑了五年,uploads目录里堆了80G的图片和视频。用SCP传?网络一抖断掉了从头再来。用FTP?速度慢不说,还不知道传到哪了。大文件迁移考验的不是带宽,是方案选得对不对。

rsync:大文件迁移的首选工具

rsync之所以是迁移标配,核心优势有三个:增量传输(只传变化的部分)、断点续传(中断后接着传)、校验机制(传输后自动验证完整性)。

基础命令:rsync -avzP --partial /源目录/ root@目标IP:/目标目录/

逐个参数说:-a是归档模式,保留权限、属主、时间戳、软链接;-v输出详情;-z传输时压缩,省带宽但吃CPU;-P--partial --progress的组合,保留未完成的传输文件并显示进度条;--partial单独使用就是断点续传的关键参数。

网络不稳定的环境建议加 --timeout=300--retry,遇到超时自动重试。如果文件特别多(十万级以上),加 --bwlimit=50000 限制带宽到50MB/s,避免把网卡跑满影响线上业务。

中断恢复:传到一半断了怎么办

rsync中断后重新执行同一条命令就行,它会自动跳过已完整传输的文件,从断点继续传未完成的部分。这是SCP做不到的——SCP断了只能重来。

如果用的是SSH隧道传输,中间断开了,用 screentmux 来保持会话。命令:screen -S migrate 开一个会话,在里面跑rsync,就算SSH断了rsync还在跑。重连后用 screen -r migrate 回去看进度。

超大单文件:split分割传输

遇到单个几十G的数据库备份文件,网络传输风险很高。可以先分割再传:

split -b 2G bigdb.sql.gz bigdb_part_

这会生成bigdb_part_aa、bigdb_part_ab等2G大小的分片文件。分片传完后在目标服务器合并:cat bigdb_part_* > bigdb.sql.gz,然后用 md5sum 对比源文件和合并后文件的MD5,确认一致再删除分片。

迁移完成后必须做的事

别传完就收工。用rsync再做一次dry-run验证:rsync -avzn /源目录/ root@目标IP:/目标目录/,没有输出说明两边完全一致。再抽查几个关键文件的MD5值做二次确认。数据迁移备份这种事,验证花的时间永远比传输花的时间值得。

电话咨询 微信咨询 在线咨询 返回顶部
xycx202108

微信扫码咨询

×