我希望这不会算作一个问题,没有一个真正的答案,因为我似乎无法找到一个很好的理由使用cp(1)
了rsync(1)
在几乎所有情况。如果一个典型的青睐rsync
了cp
?有什么好的使用指南吗?
rsync
:传输差异文件,可以使用压缩,可以远程使用(安全地使用),即使中断也可以重新启动,即使在传输单个大文件时也可以。'cp
:也许使用起来更简单?它比rsync快吗?
我希望这不会算作一个问题,没有一个真正的答案,因为我似乎无法找到一个很好的理由使用cp(1)
了rsync(1)
在几乎所有情况。如果一个典型的青睐rsync
了cp
?有什么好的使用指南吗?
rsync
:传输差异文件,可以使用压缩,可以远程使用(安全地使用),即使中断也可以重新启动,即使在传输单个大文件时也可以。'
cp
:也许使用起来更简单?它比rsync快吗?
Answers:
您不希望rsync
对每个复制操作都使用的主要原因是,因为它rsync
具有计算开销。在实际开始数据传输之前,请rsync
扫描所有文件。然后在每个文件之前进行比较。即使使用2012年可用的快速CPU,这种开销也不是微不足道的。我一直在进行此类传输,并且在相当不错的服务器上,一旦开始处理大量数据,开销可能很耗时。
我并不是说不要使用rsync
,一点也不要使用,这样rsync
可以节省一些传输时间。只是不使用rsync
何时cp
可以完成相同的事情。
我通常要做的是,首先使用常规复制方法带来数据。然后rsync
进行后续更改,此时可以利用这些差异。
我希望在本地复制时cp
使用较少的CPU,因为它不使用差异,而在使用差异时rsync
可以减少写入。应该避免在本地进行压缩,因为无论如何您都必须读写整个文件/ diff,并且它需要进行额外的计算。
rsync
优选。但是,当他们没有区别时,rsync
只会带来开销而没有额外的好处。
rsync
两个相同文件的I / O开销比瞎子要大cp
:修改时间变了。您必须提供--size-only
解决此问题的方法。我能看到的唯一的其他方法是rsync
依靠文件系统校验和,但是对于大多数文件系统来说,它们并不是身份的统计预测值。