rsync 显然破坏了硬链接

rsync 显然破坏了硬链接

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

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

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

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

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

看起来好像 rsync 破坏了硬链接,但可能我缺少一些配置选项。

哪一个 ?

弗朗西斯

答案1

-H是用于保留硬链接的选项;它不包含在中-a

答案2

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

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

这是因为默认情况下,rsync 会将文件写入新位置,然后将其移动到前一个文件的顶部,本质上是删除原始硬链接并将其替换为新文件。它建议使用该--inplace选项来更改此默认设置,但警告这样做存在风险,最明显的是:

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

相关内容