Rsync 是否允许文件双向同步?

Rsync 是否允许文件双向同步?

我已经使用 rsync 和 cygwin 备份了 Linux Web 服务器。现在我的 Windows 笔记本电脑上有该服务器的完美副本。如果我删除或修改笔记本电脑上的文件,然后再次使用 cygwin 运行 rsync,它会删除/更新服务器上的同一文件吗?我的印象是,如果我在服务器上删除/修改文件,然后在笔记本电脑上运行 rsync,它会删除/修改笔记本电脑上的本地文件,但反过来也可以吗?

答案1

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

Rsync 命令语法如下:

rsync [OPTION...] SRC... [DEST]

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

例如,如果您想将文件从服务器复制到笔记本电脑,您可以这样做:

rsync [OPTION...] <server-path> <laptop-path>

要以相反方向同步,请执行以下操作:

rsync [OPTION...] <laptop-path> <server-path>

因此,回答您的问题:这取决于您如何执行 rsync。

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

根据建议马塞加洛在下面的评论中,-n或者--dry-run选项也可以用于测试rsync命令行为。

答案2

bsync用python3 编写的包装器工具find可简化rsync此任务。 Github repo:https://github.com/dooblem/bsync

当它在 github 上时,不要感到害怕(即你认为你必须是一名程序员才能使用该工具)。

答案3

考虑使用--delete-after而不是--delete,这将确保您的接收端在传输后删除文件,而不是之前。

相关内容