什么是 rsync
rsync 是一款开源的文件同步与传输工具,由 Andrew Tridgell 与 Paul Mackerras 于 1996 年发布。它的核心定位是:在两台主机(或同一主机的两个目录)之间,高效地复制和同步文件和目录。与简单的 cp 不同,rsync 默认只传输“变化的部分”,因此在处理大文件或大量小文件时极其省时省带宽。
在 Rocky Linux 这类 RHEL 系发行版里,rsync 是企业运维、备份、集群文件分发的事实标准工具之一——系统自带仓库即可安装,且与系统自带的 SELinux、firewalld、systemd 深度兼容。
rsync 的底层原理:滚动校验算法
rsync 之所以能“只传变化的那一块”,靠的是它的滚动校验(rolling checksum)算法(基于 Adler-32 与 MD5 的强弱校验组合):
- 发送方把源文件切成若干固定大小的块,对每个块计算弱校验和(rolling checksum)与强校验和(MD5)。
- 接收方已有旧版本文件,逐字节滑动计算弱校验和,快速匹配哪些块在两端相同。
- 只有“接收方没有 / 已变化”的块才会通过网络传过去,其余直接复用旧数据重新拼装。
这就是为什么第一次同步是“全量”,之后每次只传增量——哪怕你只改了一个 2GB 视频中间几 MB,也只传那几 MB。
rsync 与常见工具对比
| 工具 | 增量传输 | 压缩 | 加密 | 典型用途 |
|---|---|---|---|---|
| cp | 否 | 否 | 否 | 本机复制 |
| scp | 否(全文件覆盖) | 可选 -C | 是(SSH) | 一次性远程拷贝 |
| ftp | 否 | 否 | 否(明文) | 早期文件上传 |
| unison | 是(双向) | 是 | 是 | 双向双向同步 |
| rsync | 是(单向/双向均可) | 是 -z | 是(走 SSH 或 daemon) | 备份 / 镜像 / 分发 |
Rocky Linux 中的 rsync 处于什么位置
Rocky Linux 作为 CentOS 的继任者、RHEL 的 1:1 兼容克隆,在 rsync 使用上和 RHEL 系完全一致:
- 包管理:用
dnf install rsync(旧称 yum)即可安装,软件来自 BaseOS / AppStream 仓库。 - 安全模块:Rocky 默认开启 SELinux(enforcing),rsync 守护进程相关的上下文是
rsync_exec_t/rsync_data_t,配置不当会被拦截,本文后面会讲。 - 防火墙:用 firewalld 管理,放开 rsync daemon 端口(873/tcp)要单独放行。
- 服务管理:用 systemd,定时任务既可以用 cron,也可以用 systemd timer。
接下来的四篇会依次讲:rsync 的优点、在 Rocky 上的安装方式、常用命令参数、以及结合 systemd / rsyncd / firewalld 的典型实战配置。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












暂无评论内容