Rsync 是否允许文件以两种方式同步?

Dan*_*ngs 26 linux backup ssh rsync

我已经使用 rsync 和 cygwin 备份了 linux web 服务器。我现在在我的 Windows 笔记本电脑上有一个完美的服务器副本。如果我删除或修改笔记本电脑上的文件并再次使用 cygwin 运行 rsync 会删除/更新服务器上的相同文件吗?我的印象是,如果我在服务器上删除/修改并在我的笔记本电脑上运行 rsync 它将删除/修改我笔记本电脑上的本地文件,但这是否反过来工作?

gre*_*ius 30

Rsync 进行单向同步,但是由您决定同步的方式。

Rsync 命令语法如下:

rsync [OPTION...] SRC... [DEST]
Run Code Online (Sandbox Code Playgroud)

请注意,您指定了从源到目标的同步。源和目标可以是任何本地或远程路径。

例如,如果要将文件从服务器复制到笔记本电脑,请执行以下操作:

rsync [OPTION...] <server-path> <laptop-path>
Run Code Online (Sandbox Code Playgroud)

要以相反的方向同步,您可以:

rsync [OPTION...] <laptop-path> <server-path>
Run Code Online (Sandbox Code Playgroud)

所以回答你的问题:这取决于你如何执行 rsync。

如果要在目标上删除文件,则需要使用--delete选项。但是要小心,因为如果您在指定来源时犯了错误,那么您最终将删除目的地上的所有内容。首先在没有--delete选项的情况下测试您的同步更安全,一旦您对它的工作方式感到满意,您就可以添加--delete选项。

正如masegaloeh在下面的评论中所建议的那样,-n--dry-run选项也可用于测试rsync命令行为。

  • 附加说明:为了测试 rsync 行为,您可以使用参数 `-n` 或 `--dry-run`,因此您将知道将删除和修改哪个文件 (9认同)