rsync 与 sftp 比较
rsync 与 sftp 比较
在进行文件备份时,rsync 和 sftp 是常见的两种方式。下面是对两者的详细对比,包括优缺点,并结合实际情况推荐用于大文件备份的方案。
一、rsync 与 sftp 简介
| 工具 | 简介 |
|---|---|
| rsync | 一个远程同步工具,支持增量同步、压缩传输,可通过 SSH 加密传输。 |
| sftp | 安全文件传输协议,是 SSH 的一个子系统,提供文件上传下载功能。 |
二、功能与性能对比
| 特性/维度 | rsync | sftp |
|---|---|---|
| 传输方式 | 基于 SSH,也可以本地使用 | 基于 SSH |
| 增量传输 | ✅ 支持(只同步变更部分) | ❌ 不支持(每次都要完整传) |
| 压缩传输 | ✅ 支持(-z 参数) |
❌ 不支持压缩 |
| 断点续传 | ✅ 默认支持 | ✅ 支持(但具体工具行为依赖客户端) |
| 传输速度 | 较快,尤其是大量小文件或大文件差异小 | 相对较慢,需完整传输文件 |
| 同步能力 | ✅ 双向或单向同步(rsync算法) | ❌ 只支持文件传输 |
| 自动化脚本支持 | ✅ 强(命令行友好) | ✅ 支持,但灵活度略低 |
| 目录结构支持 | ✅ 自动递归保留目录结构 | ✅ 支持 |
| 安全性 | ✅ 基于 SSH 安全通道 | ✅ 基于 SSH 安全通道 |
| 依赖服务端 | 服务端需安装 rsync(部分系统自带) |
SSH 服务端必须启用 SFTP 子系统 |
三、使用场景对比
rsync 适用场景
- 频繁备份(如每日定时)
- 大文件或大目录的增量同步
- 网络带宽敏感场景(可压缩)
- 需要保留文件权限和时间戳等元信息
sftp 适用场景
- 一次性完整传输文件
- 临时手动文件上传下载
- 服务端无法安装 rsync 时的替代方案
四、对大文件备份的推荐
推荐:rsync ✅
理由:
- 大文件如果只修改了部分内容,rsync 会只传输变动部分(基于块级校验),显著节省带宽。
- 支持压缩传输,可以进一步提升效率。
- 自动化方便,支持脚本定时运行。
- 断点续传更稳定。
SFTP 在大文件场景下的问题:
- 需要完整重传整个文件。
- 不支持压缩,速度慢。
- 出现中断后恢复不如 rsync 灵活。
五、典型命令示例
rsync 示例(压缩、增量、带进度):
1 | |
sftp 示例(手动上传):
1 | |
如果你是在 自动化备份、定时执行脚本、带宽敏感、大量数据或大文件 情况下,首选 rsync。
rsync 与 sftp 比较
http://eevann.cn/2025/04/24/rsync-vs-sftp/