从 samba 共享复制时,使用 rsync 比使用普通 cp 有什么优势吗?

从 samba 共享复制时,使用 rsync 比使用普通 cp 有什么优势吗?

我目前正在 Linux 计算机上配置 Dirvish,以便备份 Windows 计算机上共享的内容。

每次调用 Dirvish 时,它都会创建一个新目录。它在内部使用 rsync 复制数据,为未更改的文件创建硬链接,并复制已更改的文件。

通常,从 Linux 到 Linux,它使用 ssh 上的 rsync,其中 rsync 在连接的两端运行,因此对于那些已经存在的文件,只传输校验和,即使对于大文件来说,这也几乎是即时的。

在 Samba 共享上使用时,另一台计算机上没有 rsync,那么就网络流量而言,rsync 是否仍然比纯文本复制具有优势?

答案1

为什么使用 rsync 而不是 cp?
首先,我想引用蒂姆·摩根,他写了三个论点他的博客文章几年前,我更喜欢 rsync 而不是 cp:

  • 中途可以取消,稍后再恢复。
  • 它可以显示进度条(虽然不完美)对于大文件或大量文件非常有用。
  • 它将仅复制已更改的文件,而不会破坏目标上已经存在的文件目录。

默认情况下,rsync 使用的流量比 cp 少,即使在 samba 共享上也是如此
在网络流量方面,cp总是复制文件内容,而 rsync 则不复制。rsync 的默认行为(请参阅手册页) 是检查文件大小和修改日期/时间。如果这两个属性相同,rsync假设文件未发生改变。这也适用于 Samba 共享。可以使用-c--checksum标志更改此行为,这会强制 rsync 始终根据校验和进行检查。

rsync -c 会使用(一点点)更多的流量
如果您在 rsync 中使用 -c 标志,则存在发送文件列表的开销,rsync 会这样做,但 cp 不会,因此我认为(未经测试)如果 rsync 与 -c 标志一起使用,则 rsync 的开销(非常!)比 cp 多一点。

相关内容