我已经使用cygwin和rsync备份了Linux Web服务器。现在,我在Windows笔记本电脑上拥有服务器的完美副本。如果我删除或修改笔记本电脑上的文件并再次使用cygwin运行rsync,它将删除/更新服务器上的相同文件吗?我的印象是,如果我在服务器上删除/修改并在笔记本电脑上运行rsync,它将删除/修改笔记本电脑上的本地文件,但这是否相反?
我已经使用cygwin和rsync备份了Linux Web服务器。现在,我在Windows笔记本电脑上拥有服务器的完美副本。如果我删除或修改笔记本电脑上的文件并再次使用cygwin运行rsync,它将删除/更新服务器上的相同文件吗?我的印象是,如果我在服务器上删除/修改并在笔记本电脑上运行rsync,它将删除/修改笔记本电脑上的本地文件,但这是否相反?
Answers:
Rsync执行一种单向同步,但是您可以决定同步的方式。
Rsync命令语法如下:
rsync [OPTION...] SRC... [DEST]
请注意,您指定了从源到目标的同步。源和目标可以是任何本地或远程路径。
例如,如果要将文件从服务器复制到笔记本电脑,请执行以下操作:
rsync [OPTION...] <server-path> <laptop-path>
要以相反的方向进行同步,请执行以下操作:
rsync [OPTION...] <laptop-path> <server-path>
因此,回答您的问题:这取决于您如何执行rsync。
如果要在目标位置删除文件,则需要使用--delete
选项。但是要小心,因为如果在指定来源时出错,那么最终将删除目的地上的所有内容。首先测试不带--delete
选项的同步是比较安全的,一旦对它的工作方式感到满意,就可以添加--delete
选项。
如masegaloeh在下面的注释中所建议的,-n
或者--dry-run
选项也可以用于测试rsync
命令行为。
-n
或--dry-run
,这样您就知道要删除和修改哪个文件
使用python3编写的包装工具,bsync
该工具可以包装find
和rsync
命令,从而简化了任务。Github仓库:https : //github.com/dooblem/bsync
当它在github上时不要害怕(即以某种方式,您认为您必须是程序员才能使用该工具)。
unison
。这是一个同步工具,可以在两个副本上保存文件状态,因此可以进行双向同步。还有一个cygwin软件包。