rsync 在传输速度、最大传输大小等方面与 scp 有何不同?或者它们非常相似?在什么情况下我们需要使用这些命令?
答案1
我能想到的 rsync 和 scp 之间有两个主要区别。
在传输文件之前,rsync 会获取文件的校验和(我认为是 MD5 和 adler-32)并将其发送给接收方。在传输文件后,接收方使用这些校验和验证数据的完整性。scp 没有这样的机制。scp 使用 ssh 传输数据,尽管 ssh 在数据包级别使用校验和,但情况就不同了(我认为默认的 rsync 行为也是使用 ssh 进行传输)。
另一个区别是重试传输时会发生什么。虽然 scp 会忽略任何部分传输的文件集并在接收端覆盖它们,但 rsync 比这更聪明。Rsync 将检查目标是否存在任何文件,如果它们的签名与发送方的文件的签名匹配,它将不会重新传输这些文件。也许可以覆盖此行为,但我并不完全确定。
欢呼,n
答案2
scp(安全复制):将文件从一台计算机复制到另一台(或)本地计算机。例如:scp 10.113.16.1:/source_file 120.55.77.1:/destination_file。-> 但 scp 会一次又一次地覆盖文件。例如:我在 source_file 目录中有文件(f1、f2、f3、f4)。我再次将文件复制到同一目标(scp 10.113.16.1:/source_file
120.55.77.1:/destination_file)destination_file 被(f1、f1、f2、f2、f3、f3、f4、f4)覆盖。但 rsync 会跳过已复制的文件。例如:rsync 10.113.16.1:/source_file 120.55.77.1:/destination_file.(第一次)o/p:destination_file(f1,f2,f3,f4) 例如:rsync 10.113.16.1:/source_file 120.55.77.1:/destination_file.(第二次)o/p:destination_file(f1,f2,f3,f4)。此命令中不覆盖