67GB大文件rsync传输异常求助:VPN断开、系统崩溃等问题
解决大文件跨VPN传输失败的问题
问题背景
需传输67GB文件从大学服务器到本地,操作流程为先连接大学VPN,再挂载服务器磁盘:
- 在macOS执行rsync命令:
出现超时错误,VPN断开后重传需从头开始,错误信息包含rsync -rvhP --progress --append --no-owner --no-group /Volumes/eutops/raw-data/nanopore/pilot/data/FR11441102_ST-00005257/FR11441102_ST-00005257_BAM /Volumes/data/data/nanoporeOperation timed out (60)、file has vanished,最终返回rsync错误码23。 - 在Ubuntu执行相同命令,传输1-2小时后速度骤升至300MB/s,进度跳跃后系统崩溃。
优化rsync参数适配VPN不稳定场景
启用可靠的断点续传
替换--append为--append-verify,它会在续传前校验已传输部分的完整性,避免从头开始;同时去掉重复的--progress(-P已包含该功能):rsync -rvhP --append-verify --no-owner --no-group /Volumes/eutops/raw-data/nanopore/pilot/data/FR11441102_ST-00005257/FR11441102_ST-00005257_BAM /Volumes/data/data/nanopore添加超时与自动重试机制
配置超时时间和重试次数,让rsync在VPN断开后自动重试,无需手动重新执行:rsync -rvhP --append-verify --no-owner --no-group --timeout=300 --contimeout=60 --retry=10 /Volumes/eutops/raw-data/nanopore/pilot/data/FR11441102_ST-00005257/FR11441102_ST-00005257_BAM /Volumes/data/data/nanopore参数说明:
--timeout=300:设置数据传输超时时间为5分钟--contimeout=60:设置连接服务器超时时间为60秒--retry=10:最多重试10次
限制传输速度避免系统崩溃
Ubuntu的系统崩溃大概率是突发高速传输耗尽资源,用--bwlimit限制速度(示例为50MB/s,可根据网络调整):rsync -rvhP --append-verify --no-owner --no-group --bwlimit=50 --timeout=300 --contimeout=60 --retry=10 /Volumes/eutops/raw-data/nanopore/pilot/data/FR11441102_ST-00005257/FR11441102_ST-00005257_BAM /Volumes/data/data/nanopore
替代方案:分块传输后合并
如果VPN稳定性极差,可先在服务器上将大文件分块,再逐个传输,最后在本地合并:
- 服务器上分块(直接ssh登录服务器执行):
split -b 10G /Volumes/eutops/raw-data/nanopore/pilot/data/FR11441102_ST-00005257/FR11441102_ST-00005257_BAM/FR11441102_ST-00005257.pass.bam FR11441102_part_ - 分块传输到本地:用rsync或scp逐个传输分块文件
- 本地合并文件:
cat FR11441102_part_* > FR11441102_ST-00005257.pass.bam
额外注意事项
- 确认本地磁盘预留至少70GB空间(留冗余)
- 传输时关闭本地高资源占用程序,避免系统过载
- 检查VPN客户端设置,延长自动断开超时时间,保持连接稳定
内容的提问来源于stack exchange,提问作者slabofguinness
相关产品推荐
相关产品推荐

