首页/系统/信创系统运维速查/数据迁移:rsync 与流式传输
迁移适配65 条

数据迁移:rsync 与流式传输

文件数据迁移以 rsync 为常规方案:增量同步、断点续传、保持权限时间;大量小文件先打包再传,减少元数据开销。

信创系统运维速查系统更新于 2026-10-13

rsync 与流式迁移

文件数据迁移的常规方案是 rsync:增量同步、断点续传、保留权限与时间戳,适合反复跑几次做最终切换。大量小文件直接同步会因元数据开销变慢,先打包成流再传输更高效。跨平台迁移时,先把共享目录挂到本地再交给 rsync 处理是常用做法。Linux 全发行版都自带或可安装。

基本信息

适用平台Linux 全发行版(rsync 包)
基础同步rsync -avz 源 目标
演练模式-n 只打印不落地
续传--partial --append-verify
打包流式tar 加管道配合 ssh

典型使用场景

  • 整机替换或机房搬迁时的目录迁移
  • 首次全量加后续增量的滚动同步,缩短停机窗口
  • 大文件跨机传输,网络中断后接着传
  • 大量小文件先打包再传,降低元数据开销
  • 迁移前用演练模式预演,确认路径与排除项正确

rsync 常用

rsync 常用
rsync -avz --progress /data/ user@10.0.0.9:/data/          # 目录同步,注意尾斜杠
rsync -avz --partial --append-verify big.iso user@10.0.0.9:/data/   # 大文件续传
rsync -avz --exclude '*.tmp' --exclude 'cache/' /data/ user@10.0.0.9:/data/
rsync -avzn /data/ user@10.0.0.9:/data/ | head              # 演练,不落地
rsync -avz --delete /data/ user@10.0.0.9:/data/             # 目标端删除多余文件,慎用

大量小文件先打包流式传

大量小文件先打包流式传
tar -C /data -czf - . | ssh user@10.0.0.9 'tar -C /newdata -xzf -'   # 打包即传输
du -sh /data                                     # 传输后核对体积
diff <(find /data -type f | wc -l) <(ssh user@10.0.0.9 'find /newdata -type f | wc -l')   # 核对文件数

常用选项对照

选项作用注意点
-a归档模式,保留权限时间属主保持需要目标端 root
-v 与 --progress显示详情与进度大目录输出量大
--exclude排除文件或目录路径模式要与源端写法一致
-n演练不落地切换前必做
--delete目标端删除多余文件误删风险高,先演练
跨 Windows 共享迁移时通常先把共享挂到本地再同步;保持属主与属组需要目标端以 root 执行,迁移后要抽查归属是否正确。

迁移执行流程

  • 先用演练模式确认路径与排除项写对了
  • 业务低峰做首次全量同步
  • 按固定间隔做增量同步,持续缩小差异
  • 切换窗口内停写并执行最后一次同步
  • 切换后核对文件数量与关键目录属主

易错点

  • 源路径尾部斜杠写错:带斜杠同步目录内容,不带斜杠会多套一层目录,切换前用演练模式确认
  • 权限保持与两端用户映射不一致:属主错位会导致服务读不到文件,迁移后抽查关键目录
  • 直接上 --delete:目标端被误删的数据难以恢复,先用 -n 演练并确认排除项
  • 迁移期间源端仍在写入:不做冻结或二次增量就切换会造成数据不一致,切换前停写并做最后一次同步
  • 迁移结束只看体积不看文件数:大目录里少几个文件并不显眼,用数量核对与抽查校验双保险

数据来源与参考

  • man 1 rsync
  • man 1 tar
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌