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

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

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

Rsync命令语法如下:

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

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

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

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

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

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

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

如果你想要在目的地删除文件,你需要使用--delete选项。 但要小心,因为如果在指定源时出错,则最终将清除目标上的所有内容。 首先testing你的同步没有--delete选项更安全,一旦你对它的工作方式感到满意,你可以添加--delete选项。

正如下面注释中的masegaloeh所示, -n--dry-run选项也可用于testingrsync命令的行为。

用python3编写的封装工具叫做bsync ,它包装了findrsync命令,简化了任务。 Github回购: https : //github.com/dooblem/bsync

在github上时不要害怕(也就是说,你认为你必须是程序员才能使用这个工具)。

考虑使用–delete-after而不是–delete,这样可以确保你的接收端会在传输之后删除文件,而不是之前。