rsync 和 scp 之间有两个主要区别(我能想到的)。
在传输文件之前,rsync 会获取文件的校验和(我相信是 MD5 和 adler-32)并将它们发送给接收器。传输文件后,接收器使用这些校验和验证数据完整性。scp 没有这种机制。scp 使用 ssh 传输数据,尽管 ssh 在数据包级别使用校验和,但情况不同(我相信默认的 rsync 行为也是使用 ssh 进行传输)。
另一个区别是传输重试期间发生的情况。虽然 scp 会忽略任何部分传输的文件集并在接收端覆盖它们,但 rsync 比这更聪明。Rsync 将检查目的地是否存在任何文件,如果它们的签名与发送方的文件的签名匹配,则不会重新传输这些文件。可能会覆盖此行为,但我不完全确定。
干杯,n