rsync显然打破了硬链接

在源服务器(A)上,我得到一个指向这个文件的文件/ opt / resources / xxx和一个硬链接/ etc / apache2 / sites-available / xxx。

在另一台服务器(B)上,我得到了与/ opt / resources / xxx硬链接相同的/ etc / apache2 / sites-available / xxx结构

我在服务器(A)上的服务器(B)的rsync所有更改/ opt下

当我更改服务器A上的文件xxx,然后rsync到服务器B时,这些更改被反映。 服务器B上的/ opt / resources / xxx包含我对服务器A上的同一文件所作的更改。

唯一我不明白的是文件/ etc / apache2 / sites-available / xxx不包含更改。

它似乎是rsync打破硬链接,但可能我错过了一些configuration选项。

哪一个 ?

弗朗西斯

-H是保存硬链接的选项; 它不包含在-a

rsync对硬链接的处理取决于你在一次传输中发送所有链接的文件(同时将/etc/apache2/sites-available//opt/resources/同时同步到服务器B):

请注意,rsync只能检测传输集内的文件之间的硬链接。 如果rsync更新一个文件,该文件与传输之外的文件具有额外的硬链接连接,则该连接将被打破。

这是因为默认情况下,rsync将文件写入到一个新的位置,然后移动到前一个文件的顶部,从本质上擦除原来的硬链接,并用新文件replace它。 它build议使用--inplace选项来改变这个默认值,但是警告说有风险,最值得注意的是:

(2)传输过程中文件数据处于不一致状态;(3)传输中断或文件更新失败,文件数据传输后可能会出现不一致的状态