ChatGPT解决这个技术问题 Extra ChatGPT

`scp` 与 `rsync` 有何不同?

一篇关于 setting up Ghost blogging 的文章说使用 scp 从我的本地机器复制到远程服务器:

scp -r ghost-0.3 root@*your-server-ip*:~/

但是,Railscast 339: Chef Solo Basics 使用 scp 以相反的方向复制(从远程服务器到本地计算机):

scp -r root@178.xxx.xxx.xxx:/var/chef .

在同一个 Railscast 中,当作者想将文件复制到远程服务器时(与第一个示例的方向相同),他使用 rsync

rsync -r . root@178.xxx.xxx.xxx:/var/chef

如果 scp 将双向复制,为什么还要使用 rsync 命令? scprsync 有何不同?

除了更简单且始终加密之外,没有人指出 scp 可以比“rsync -aA”做得更好。我更喜欢“rsync -aAX --delete source dest”。结帐 bsync 进行双向同步。

L
Luc

这些工具之间的主要区别在于它们复制文件的方式。

scp 基本上读取源文件并将其写入目标。它在本地或通过网络执行纯线性复制。

rsync 还可以在本地或通过网络复制文件。但它采用了一个特殊的 delta transfer algorithm 和一些优化来使操作更快。考虑电话。

rsync A host:B

rsync 将检查 A 和 B 的文件大小和修改时间戳,如果它们匹配,则跳过任何进一步的处理。

如果目标文件 B 已经存在,则增量传输算法将确保仅通过线路发送 A 和 B 之间的差异。

rsync 会将数据写入临时文件 T,然后将目标文件 B 替换为 T,以使更新对于可能正在使用 B 的进程看起来是“原子的”。

它们之间的另一个区别涉及调用。 rsync 有大量命令行选项,允许用户微调其行为。它支持复杂的过滤规则,以批处理模式、守护进程模式等运行。scp 只有几个开关。

总之,将 scp 用于您的日常任务。您偶尔在交互式 shell 上键入的命令。它使用起来更简单,在这些情况下,rsync 优化不会有太大帮助。

对于重复任务,例如 cron 作业,请使用 rsync。如前所述,在多次调用时,它将利用已传输的数据,非常快速地执行并节省资源。它是通过网络保持两个目录同步的绝佳工具。

此外,在处理大文件时,请将 rsync-P 选项一起使用。如果传输中断,您可以通过重新发出命令从停止的位置恢复传输。见席德·刹帝利的answer

最后,请注意 rsync:// 该协议类似于纯 HTTP:未加密且没有完整性检查。请务必始终通过 SSH 使用 rsync(如上述问题中的示例),而不是通过 rsync 协议,除非您真的知道自己在做什么。 scp 将始终使用 SSH 作为具有完整性和机密性保证的底层传输机制,因此这是两个实用程序之间的另一个区别。


您说要使用 scp 来完成日常任务。从您的解释和 OP 看来,这两个工具在不使用选项时的界面是相同的。如果 rsync 有更好的实现并且接口相同,为什么不总是使用 rsync 呢?
他们的界面不一样,即使没有选项。 Rsync 对 source 参数的尾部斜杠有特殊的解释(同步目录本身与其内容)。它可能还有其他陷阱,我不确定。
另外,我猜想 scp 更有可能在类 Unix 系统上可用,因此您可以防止不时出现烦人的“找不到命令”。
@erikb85 rsync 具有 -P 标志,它将显示进度条并启用从部分完成的传输中恢复。 digitalocean.com/community/tutorials/…
scprsync 之间的另一个界面区别:rsync -ascp -rp 以保留修改时间和权限。
S
Sid Kshatriya

rysnc 对于在慢速和不可靠的连接上运行很有用。因此,如果您的下载在一个大文件的中间中止,rysnc 将能够在再次调用时从它停止的地方继续。

使用rsync -vP username@host:/path/to/file .

-P 选项保留部分下载的文件并显示进度。

像往常一样检查man rsync


M
Michael P

不同参数上的差异 b/w scp 和 rsync

1. 性能优于延迟

scp : scp 的优化和速度相对较少

rsync : rsync 相对更优化和速度

https://www.disk91.com/2014/technology/networks/compare-performance-of-different-file-transfer-protocol-over-latency/

2.中断处理

scp : scp 命令行工具无法从丢失的网络连接中恢复中止的下载

rsync :如果上述 rsync 会话本身被中断,您可以通过键入相同的命令多次恢复它。 rsync 将自动从中断的地方重新开始传输。

http://ask.xmodulo.com/resume-large-scp-file-transfer-linux.html

3. 命令示例

scp

$ scp source_file_path destination_file_path

rsync

$ cd /path/to/directory/of/partially_downloaded_file
$ rsync -P --rsh=ssh userid@remotehost.com:bigdata.tgz ./bigdata.tgz 

-P 选项与 --partial --progress 相同,允许 rsync 处理部分下载的文件。 --rsh=ssh 选项告诉 rsync 使用 ssh 作为远程 shell。

4. 安全:

scp 更安全。您必须使用 rsync --rsh=ssh 使其与 scp 一样安全。

man 文档以了解更多信息:

SCP:http://www.manpagez.com/man/1/scp/

rsync:http://www.manpagez.com/man/1/rsync/

https://i.stack.imgur.com/aU9qo.jpg


在许多系统上,默认使用 ssh。 serverfault.com/questions/378939/do-you-need-e-ssh-for-rsync
关于安全性,来自 openSSH 8.0 release notesThe scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.
c
count0

rsync 优于 scp 的一个主要特性(除了 delta 算法和加密,如果使用 w/ssh)是它自动验证传输的文件是否已正确传输。 scp 不会这样做,这有时可能会在传输较大的文件时导致损坏。所以总的来说rsync 是有保证的副本

Centos 手册页在 --checksum 选项描述的结尾提到了这一点:

请注意,rsync 始终通过检查在传输文件时生成的整个文件校验和来验证每个传输的文件是否在接收端正确重建,但是自动传输后验证与此选项的 before- the-transfer “这个文件需要更新吗?”查看。


S
Samuel Li

对我来说有一个区别,scp 始终使用 ssh(安全 shell)加密,而 rsync 不一定加密。更具体地说,rsync 本身不执行任何加密;它仍然能够使用其他机制(例如 ssh)来执行加密。

除了安全性之外,加密还对您的传输速度以及 CPU 开销产生重大影响。 (我的经验是 rsync 可能比 scp 快得多。)

查看此 post,了解 rsync 何时启用加密。


c
copremesis

scp 最适合 一个 文件。
tar 和压缩较小的数据集,例如资源较少的源代码树(ie:图像、sqlite etc)。

然而

较大

媒体文件夹 (40 GB)

数据库备份 (28 GB)

mp3 库 (100 GB)

此时构建一个 zip/tar.gz 文件以使用 scp 传输变得不切实际,这会受到托管服务器的物理限制。

作为练习,您可以做一些 体操,例如将 tar 导入 ssh 并将结果重定向到 remote 文件。 (无需构建交换或临时克隆 aka zip 或 tar.gz)

然而,

rsync 简化了这个过程,允许您在不消耗任何额外磁盘空间的情况下传输数据。

还,

连续(cron?)更新使用最少的更改,而完整的克隆副本随着时间的推移加速了大型数据迁移。

tl;dr
scp == 小规模(有空间在同一驱动器上构建压缩文件)
rsync == 大规模(需要备份大量数据且没有剩余空间)


d
del bao

最好在实际情况下思考。在我们的团队中,我们使用 rsync -aP 来替换集群中的错误 cassandra 主机。我们不能用 scp 做到这一点(缓慢且没有进度保存)。


并没有真正带来其他答案中尚未提到的任何东西。另外,我们甚至不应该回答离题的问题。
@DanCornilescu 这描述了一个真实场景中的用例,这使得其他人很容易理解其中的区别。我没有看到任何其他类似的答案
请参阅 Sid 和 Rafa 的答案中的 -P 解释和慢速/速度相关注释。