rsync 与 sftp 比较

rsync 与 sftp 比较

在进行文件备份时,rsyncsftp 是常见的两种方式。下面是对两者的详细对比,包括优缺点,并结合实际情况推荐用于大文件备份的方案。


一、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
rsync -avzP /local/dir/ user@remote:/backup/dir/

sftp 示例(手动上传):

1
2
sftp user@remote
put largefile.iso

如果你是在 自动化备份、定时执行脚本、带宽敏感、大量数据或大文件 情况下,首选 rsync


rsync 与 sftp 比较
http://eevann.cn/2025/04/24/rsync-vs-sftp/
作者
月下独白
发布于
2025年4月25日
许可协议