rsync 与 rsh,或其他替代方案

rsync 与 rsh,或其他替代方案

我一直使用普通的 rsync 命令将大量数据从 LAN 上的某些硬盘驱动器移动到另一台计算机进行分析。通常只需一次性传输。我一直使用的 rsync 格式是:

rsync -ave ssh foo@bar:/source dest

我需要尽可能提高传输速度。最近有人提到设置 rsh-server 并通过 RSH 复制文件。没有加密开销会非常有帮助。我想我有以下选择:

  • cp、scp 等等。
  • 通过 rsh 进行 rsync
  • 通过 ssh 进行 rsync,使用 arcfour 加密以降低速度
  • rsyncd,无加密,由于不需要建立文件列表,因此具有一些优势

我很好奇哪个能带来最佳性能。我知道,每个案例都不同。还有其他更好的选择吗?

一些说明:

安装非常方便。设置 RSH 服务器有点麻烦。Rsyncd 设置合理。安全性不是大问题。

全部都是 7200 rpm 驱动器、千兆网络和高速 CPU(至少双核 i7 2.0ghz)。

答案1

在工作中,我们使用 rsyncd 来备份同一 LAN 上的服务器。我认为它提供了最大的传输速度。几乎没有协议开销。

但是,与通过 SSH 进行 rsync 一样,构建文件列表需要时间。除非文件树非常庞大,否则构建文件列表非常快。

rsyncd 设置非常简单且功能强大。请参阅man rsyncd.conf

答案2

你写道“安全不是一个大问题”和“没有加密开销会非常有帮助”。

然后,您应该使用rsync不加密开销的格式。只需在主机规范后使用双冒号 (::) 分隔符即可。请参阅man rsync以了解详情。对于“一次性传输”,服务器端的临时通配符设置可能会有所帮助,如下所示:文件复制实用程序或文件管理器在复制时是否显示每个字节的报告?

答案3

结论

这将恢复部分传输,并添加压缩以加快传输速度

rsync --partial --progress --archive --compress --compress-choice=zstd --compress-level=9 --checksum-choice=xxh3 user@host:~/my_file.txt .

标志解释

--partial:恢复部分文件传输

--progress:显示传输进度和预计到达时间

--archive:保留文件属性

--compress:启用压缩(默认为 zlib)

--compress-choice=zstd:启用 zstd 压缩(比 zlib 压缩更快更好)

--compress-level=9:将压缩级别从默认值 3 提高(与最大值 19 进行权衡)

--checksum-choice=xxh3:使用 xxh3 哈希算法(非常快)

答案4

如果您需要提高传输速度,请使用带有-z选项的命令,用于压缩。

rsync -avze ssh foo@bar:/source dest

压缩是使用 zlib 库完成的,因此传输的字节数会更少。

相关内容