For the complete documentation index, see llms.txt. This page is also available as Markdown.

35.1 Rsync 数据同步

Rsync(Remote Sync,远程同步)是由 Andrew Tridgell 与 Paul Mackerras 共同开发的高效文件同步工具。Rsync 采用增量传输算法,仅传输文件间的差异部分,可显著降低网络带宽消耗并缩短同步时间,是系统备份与数据镜像的常用工具。

环境概述

开始配置前,首先说明本节两台服务器的角色分工。

Rsync 架构图
  • 服务器 A(发起端、客户端):192.168.179.128

  • 服务器 B(同步源、服务端):192.168.179.150

设计目标:将服务器 B 的数据同步到服务器 A,即 B(服务端)→ A(客户端),实现数据的完整镜像。

服务器 B(同步源)配置

首先配置同步源服务器,即服务器 B。

安装 rsync

在服务器 B 上安装 rsync,有两种可选安装方式:

  • 使用 pkg 安装:

  • 或使用 Ports 安装:

  • 查看安装信息

同步目录准备

文件结构:

服务端主配置文件

编辑 /usr/local/etc/rsync/rsyncd.conf 文件,写入:

技巧

上述示例中的 192.168.179.128192.168.179.150 为占位符,需要替换为实际的值。

创建用于授权备份账户认证的密码文件(服务端)

  • 编辑 /etc/rsyncd_users.db 文件,写入:

注意

服务端的密码文件应包含用户名和密码的映射关系。格式为 授权账户用户名:密码

  • 限制数据文件权限,否则将导致错误:

设置 rsync 用户数据库文件的权限为仅属主可读写。

服务启动配置

服务端口验证

查看 rsync 服务使用的网络端口和对应进程:

服务器 A(发起端)配置

请参照上文步骤安装 rsync。

本地备份目录配置

创建本地备份目录 /home/testBackUp/,并设置相应权限:

同步操作(密码输入方式)

将文件同步到本地备份目录 /home/testBackUp/,需手动输入密码。

testcom 是在 /usr/local/etc/rsync/rsyncd.conf 文件中定义的同步模块名称,对应服务器上的目录。

附录:指定密码文件方式

创建授权备份账户认证的密码文件(客户端)。

  • 编辑客户端的 /etc/rsyncd_users.db 文件,仅写入密码:

  • 限制权限,否则将引发错误 ERROR: password file must not be other-accessible

设置 rsync 用户数据库文件权限为仅属主可读写。

注意

客户端密码文件应仅包含密码本身,每行一个。

执行同步命令。

使用 rsync 将远程 testcom 模块同步到本地备份目录,显示同步进度,并指定密码文件。

同步结果验证

列出本地备份目录中的详细文件信息:

参考文献

  • Tridgell A, Mackerras P. The rsync algorithm[EB/OL]. (1998-11-09)[2026-04-17]. https://rsync.samba.org/tech_report/. rsync 算法的原始技术报告,由两位作者共同发表。

最后更新于