我正在尝试将文件从 Linux 机器备份到 Windows Server 2008,当我从 Linux 机器中删除它们时,它们仍保留在我的 Windows Server 上。我发现了很多类似的来源,但大多数结果都是从 Windows 到 Linux。我设法找到了一些更类似的情况,例如使用 rsync 和 cygwin 将文件从 Linux 服务器同步到 Windows 笔记本电脑, 和从 Windows PC rsync 到远程 Linux 服务器,最相似的是从 Linux 备份到 Windows Server,但是通过从 Windows Server 拉取来进行。
最初,我使用 Unison,因为我认为双向功能会派上用场,我只需设置一些配置即可使其成为单向。不幸的是,我找不到正确的配置,只能使用命令进行同步。unison "profile" -ui text -auto -silent
当我删除 Linux 机器上的文件时,服务器中的文件也被删除了,这当然不是我想要的。当我尝试为 Unison 寻找任何选项时,我只发现了该-force
选项,但这没有帮助,因为我想要的是服务器的增量更新。
我发现我可以通过使用 rsync 和-a
选项(存档)来实现这一点,即使我从我的 Linux 机器中删除了文件,它也会继续添加文件。
我在 Windows Server 上安装了 Cygwin,配置了 SSH 守护程序,但似乎无法使其工作。我还已配置 Windows 防火墙以打开端口 22(入站和出站)。我从 Linux 机器中使用了以下命令:
rsync -avrzn /folder/to/be/backed/up/ [email protected]:/cygdrive/c/place/to/store/backed/up/files
(a - 存档,v - 详细,r - 递归到子目录,z - 压缩,n - dryrun)
但就是不行。有人能帮帮我吗?我不介意使用 Unison 或 rsync,只要它能实现我想要的。
答案1
我能够使用 unison 的 nodeletion 选项完成此操作。在 .prf 文件中,包括nodeletion=/root/to/ignore/deletions