这与这个问题相关,但我认为答案并不完全适用于此。
我有两台服务器,它们相互同步目录。这些目录包含文件和符号链接。在服务器B上,我使用以下命令从服务器A同步:rsync -auv A:dir/ dir/
我想要的: A上的任何文件或符号链接与B上的相应文件或符号链接不同且更新的文件或符号链接都会同步。
实际发生的情况: A上任何与B上的相应文件不同且更新的文件都会被同步。A上与B上相应符号链接不同的任何符号链接都会同步,无论时间戳如何。
的手册页rsync
有这个(强调我的):
-u,--更新
这会强制 rsync 跳过目标上存在且修改时间比源文件更新的任何文件。(如果现有目标文件的修改时间等于源文件的修改时间,并且大小不同,则它将被更新。)请注意,这不会影响符号链接或其他特殊文件的复制。
所以这是预期的行为。为什么是这样?有办法解决吗?或者,是否有一个替代解决方案来实现总体目标,即在服务器离线一段时间并丢失数据后使这些目录保持同步?
我的 rsync 版本是3.0.9
.
示例:我设置了 2 个目录Adir
和Bdir
,每个目录包含一个文件和一个具有不同内容的符号链接:
$ ls -l Adir/ Bdir/
Adir/:
total 0
-rw-r--r-- 1 kevin kevin 5 May 27 18:00 file
lrwxrwxrwx 1 kevin kevin 10 May 27 18:00 symlink -> /some/file
Bdir/:
total 0
-rw-r--r-- …
Run Code Online (Sandbox Code Playgroud)