我想要同步 dir1 和 dir2(两个不同的服务器)中的文件。
我并不关心文件大小或修改时间是否不同。
示例:dir1 包含 file1、file2、file3、file4,而 dir2 包含 file2、file3、file5
我想要将file5复制到dir1,并将file1、file4复制到dir2。
请注意,file2 的大小不同,file3 的修改时间也不同,但我不在乎。我的网络也是私有的,所以我不希望有任何安全开销。
哪一个是最快的:
NFS 挂载上使用 rsync、scp 还是 cp?确切地说,相应的命令行是什么?
答案1
这在很大程度上是学术性的,因为您的限制因素很可能是您的网络带宽。真正需要注意的唯一事情是文件大小与操作数量 - 大量小文件将导致大量小复制操作。
但就目前情况而言,很难确定哪个是“最快”,因为“这取决于情况”。
我很惊讶地发现你在使用 时遇到了很多问题rsync
,原因很简单,它会在进行任何复制之前检查是否需要做任何事情。没有什么比不复制你不需要的东西更有效率的了。
如果你有很多小文件,那么你可能会发现tar
它更好 - 它tar
是为写入磁带而设计的,因此非常适合在网络上传输目录结构。例如
tar cvfz - ./path_to_copy | ssh $remotehost "( cd $destination && tar xvfz - )"