Skip to content

rsync 与 scp:Linux 大文件传输该选谁?

在 Linux 系统中进行文件传输时,scprsync 是最常用的两个工具。虽然它们都基于 SSH 协议,但在处理大量文件大文件时,它们的表现和功能有显著差异。

1. 工具概览

scp (Secure Copy)

scp 是一个简单的远程文件复制程序。它的操作逻辑类似于 cp 命令,只是目标或来源是远程机器。

  • 优点:简单易用,无需额外配置,几乎所有 Linux 系统预装。
  • 缺点:不支持增量传输,不支持断点续传,传输效率相对较低。

rsync (Remote Sync)

rsync 是一个功能强大的快速增量备份工具。它通过“rsync 算法”仅传输文件的差异部分。

  • 优点:支持增量传输、断点续传、数据压缩、保留文件属性(权限、时间戳等)。
  • 缺点:参数较多,初学者需要一定学习成本。

2. 核心对比

特性scprsync
传输算法全量复制增量复制 (Delta Transfer)
断点续传不支持支持 (--partial-P)
目录同步简单复制保持一致 (--delete 可删除多余文件)
数据压缩支持 (-C)支持 (-z),效率更高
属性保留有限支持完全支持 (-a)
性能适合小文件、单次操作适合大文件、大量文件、定期同步

3. 场景推荐

什么时候使用 scp?

  • 只需要拷贝单个小文件
  • 临时操作,追求命令最短、最快。
  • 目标服务器没有安装 rsync

什么时候使用 rsync?

  • 大量文件传输:rsync 会扫描差异,极大节省带宽和时间。
  • 大文件传输:如果中途断网,rsync 可以从断点处继续。
  • 备份与同步:需要保持远程目录与本地目录完全一致。
  • 不稳定网络:由于支持续传,更适合在网络波动环境使用。

4. 常用命令示例

使用 scp 复制文件

bash
scp local_file.zip user@remote_ip:/path/to/dest/

使用 rsync 同步目录(推荐)

bash
rsync -avzP --delete ./local_dir/ user@remote_ip:/path/to/dest/

参数说明:

  • -a (archive): 归档模式,保留所有属性。
  • -v (verbose): 显示详细过程。
  • -z (compress): 传输过程中压缩数据。
  • -P (partial/progress): 显示进度并支持断点续传
  • --delete: 让远程目录与本地保持绝对一致(慎用)。

IMPORTANT

结论:对于大量文件或 GB 级以上的大文件,强烈建议使用 rsync。它不仅速度快,而且安全性(指传输成功率)更高。

Released under the MIT License.