You need to enable JavaScript to run this app.
文档中心
弹性文件存储

弹性文件存储

复制全文
下载 pdf
最佳实践
使用 rsync 工具迁移数据
复制全文
下载 pdf
使用 rsync 工具迁移数据
如果您有大量文件上传和下载,或需要频繁执行上传和下载的任务时,建议您使用 rsync 命令行工具,执行上传下载任务。本文介绍如何使用 rsync 命令行工具迁移数据。​
rsync 工具简介​
  • 工具概述:rsync 是一款开源的、快速且功能强大的数据同步备份工具,支持全量及增量的本地或远程数据同步,适用于 Unix、Linux 及 Windows 等多种操作系统平台。​
  • 核心优势:​
  • 增量同步:仅同步发生变化的数据,传输效率远高于传统 scp 或 cp 的完整拷贝。​
  • 属性保留:可保持原文件或目录的权限、时间、属主、组、软硬链接及设备文件等元数据,常用-a(归档模式)实现完整保留。​
  • 灵活筛选:支持排除指定文件或目录(类似 tar 的排除功能),可按需同步。​
  • 多传输方式:​
  • 可通过 ssh、rsh 等远程 shell 通道传输,结合 ssh 可实现加密传输。​
  • 支持以守护进程(socket)方式运行,实现服务端 - 客户端模式。​
  • 安全认证:​
  • 守护进程模式下支持匿名访问与独立认证(基于 rsync 自带的密码文件,无需系统用户)。​
  • ssh 模式依赖系统用户,安全性更高。​
rsync 工具常用参数​
​
分类​
参数​
简写​
说明​
基础选项​
--verbose​
-v​
详细模式输出,显示传输时的进度等信息。​
​
--progress​
无​
显示文件传输的实时进度(常与--partial组合为--partial --progress,简写为-P)。​
​
--partial​
无​
保留传输中断的未完成文件,实现断点续传。​
传输优化​
--compress​
-z​
传输时进行压缩以提高传输效率,可搭配--compress-level=NUM指定压缩级别(1-9,默认为 6)。​
​
--whole-file​
-W​
关闭增量检测,全量拷贝文件,适用于高带宽或低延迟场景,可提升效率。​
​
--bwlimit=KBPS​
无​
限制传输带宽,单位为 KB/s。​
归档模式​
--archive​
-a​
归档模式,递归传输并保留几乎所有元数据,等价于-rlptgoD。​
​
--recursive​
-r​
递归传输子目录及所有文件(已包含在-a中)。​
​
--times​
-t​
保留文件修改时间(已包含在-a中)。​
​
--owner​
-o​
保持文件属主(需 root 权限,已包含在-a中)。​
​
--perms​
-p​
保持文件权限(已包含在-a中)。​
​
--group​
-g​
保持文件属组(已包含在-a中)。​
​
--devices​
-D​
保留设备文件和特殊文件(已包含在-a中)。​
​
--links​
-l​
保留软链接(已包含在-a中)。​
链接控制​
--copy-links​
-L​
将软链接指向的源文件/目录复制到目标端(而非创建新的软链接)。​
高级属性保留​
--hard-links​
-H​
保留硬链接。​
​
--acls​
-A​
保留 ACL 访问控制列表。​
​
--xattrs​
-X​
保留文件扩展属性。​
​
--numeric-ids​
无​
传输 uid/gid 数字 ID 而非用户名/组名,避免跨系统用户映射问题。​
过滤控制​
--exclude=PATTERN​
无​
指定不需要传输的文件或目录,支持通配符*。​
​
--exclude-from=FILE​
无​
从 FILE 文件中读取不需要传输的文件或目录规则。​
​
--include=PATTERN​
无​
指定不被排除的文件或目录(需配合--exclude使用),支持通配符*。​
​
--include-from=FILE​
无​
从 FILE 文件中读取不被排除的文件或目录规则(需配合--exclude使用)。​
同步控制​
--delete​
无​
删除目标端存在但源端不存在的文件,使两端完全一致。​
注意​
该参数可能会导致文件被删除,建议您谨慎使用。​
远程传输​
--rsh=COMMAND​
-e​
指定远程 shell 通道协议,默认为 ssh。​
​
前提条件​
  • 已创建 ECS 实例或选择已有云服务器作为数据同步的目的端,并且目的端 ECS 需要通过 VPC 或者公网访问到源 ECS 实例。​
  • 不同迁移场景下的目标路径格式不同,以下表为例,请根据实际场景替换参数值。​
  • ​
    场景类型​
    源路径格式​
    目标路径格式​
    本地迁移​
    /mnt/source/​
    /mnt/target/​
    远程 SSH 迁移​
    /mnt/source/​
    用户名@目标 IP:/目标路径/​
    例如:user@192.168.1.100:/mnt/target/​
    rsync 守护进程迁移​
    /mnt/source/​
    用户名@目标 IP::模块名/​
    例如:rsync_user@192.168.1.100::target_module/​
    ​
  • 本文以本地迁移为例,其他场景请按实际路径格式替换。​
步骤一:安装 rsync 工具​
根据不同的操作系统,选择合适的命令安装 rsync 工具。​
​
CentOS 或 Redhat
Ubuntu 或 Debian
Windows
​
​
sudo yum install rsync​
​
​
​
步骤二:迁移数据​
  1. 全量迁移数据。​
  • 执行以下命令,将源端所有数据完整复制到目标端,且不删除目标端原有数据。​
  • ​
    rsync -avP [源路径] [目标路径]​
    ​
  • 例如:​
  • ​
    rsync -avP /mnt/source/ /mnt/target/​
    ​
  • 参数说明如下:​
  • -a:归档模式,保留文件属性(权限、时间、属主等)。​
  • -v:详细输出,显示传输时的进度等信息。​
  • -P:显示进度并支持断点续传。​
  1. 增量数据同步。​
  • 执行以下命令,同步源端新增或修改的数据。​
  • ​
    rsync -avP --delete [源路径] [目标路径]​
    ​
  • 例如:​
  • ​
    rsync -avP --delete /mnt/source/ /mnt/target/​
    ​
注意​
  • --delete参数会删除目标端存在但源端不存在的文件,使两端完全一致。请谨慎使用,并确保源端数据为权威数据,避免误删目标端独有数据。​
  • rsync 会先扫描源端所有文件,即使增量数据不多,扫描过程也可能耗时较长。​
  • 您可以根据实际需要多次执行增量同步,或将其配置为定时任务。直至单次同步耗时降至可接受范围(如数分钟内),表明源端数据变动已极低,此时即可进入停机窗口期。​
  1. 最终增量数据同步。​
  • 停止源端业务后,执行以下命令,进行最后一次增量同步,确保源端与目标端数据完全一致。​
  • ​
    rsync -avP --delete [源路径] [目标路径]​
    ​
  • 例如:​
  • ​
    rsync -avP --delete /mnt/source/ /mnt/target/​
    ​
步骤三:校验迁移结果​
数据迁移完成后,执行以下命令验证源端和目标端数据是否一致。​
​
rsync -avn [源路径] [目标路径]​
​
例如:​
​
rsync -avn /mnt/source/ /mnt/target/​
​
当返回如下所示的信息,中间不包含任何文件路径时,表示源端与目的端数据完全一致,迁移成功。​
​​​
步骤四:业务迁移​
数据迁移完成后,如果您需要将现有业务从旧的文件系统切换到新的文件系统上,请在所有 ECS 上卸载旧的文件系统,然后挂载新的文件系统。具体操作,请参见挂载文件系统。​
最近更新时间:2026.02.25 15:34:34
这个页面对您有帮助吗?
有用
有用
无用
无用