我在远程计算机上有以下目录结构
ALLLibs/LibA/LibA.1
ALLLibs/LibA/LibA.2
ALLLibs/LibB/LibB.1
ALLLibs/LibB/LibB.4
对于info,LibA.1和LibA.2是目录的版本,这两个文件夹的内容可能几乎相同,并且可以有更多这样的文件夹。
我想将AllLibs同步到另一台网络太慢的机器上。只有可用的选择是通过网络。
我知道rsync
是同步文件的最佳方法,但我相信它可以对文件进行1-1映射并同步它们。
我拥有的一个用例是ALLLibs/LibA/LibA.1
如果已经在我的另一台机器上同步,稍后在远程上创建ALLLibs/LibA/LibA.2
,我希望通过前面库的修补程序来实现同步。
发布于 2015-08-29 09:58:46
确保使用rsync -z
在网络上进行压缩。其他要考虑的选项是-H
(硬链接)和-S
(稀疏文件)。
在运行rsync之前,使用-nv
执行一个版本,该版本不进行任何更新,但显示将更新哪些文件。
从文件列表中,使用您的知识来匹配远程上可能已经存在缺失文件的位置,然后登录到远程并首先复制这些文件。
例如,-nv
可能会显示以下所需的更新:
ALLLibs/LibA/LibA.2
ALLLibs/LibA/LibA.2/file1
但是,如果您知道它可能是../LibA.1/file1
的副本,那么编写一个脚本从LibA.1创建和填充LibA.2,并在远程上运行它。它可以像cp -rp
一样简单。当您执行真正的rsync时,类似的文件将已经存在,更改后的文件将被更新。您将需要--delete
来删除不应该存在的文件(请注意此选项:先用-n
测试)。
在远程复制命令中要小心:复制一个文件通常会在新文件上设置一个新的时间戳。默认情况下,rsync比较大小和时间戳。如果它们不同,文件将被更新。使用rsync选项-c
代替检查每个文件的和,以查看它是否不同。
https://unix.stackexchange.com/questions/225998
复制相似问题