SE 网络上有很多关于在 Windows 上使用 rsync 的问题。但似乎没有什么能真正解决问题,所以我想介绍一下我需要设置的具体机制。
假设我有一个包含我整个生活的 USB 硬盘(好吧,我没有,我有一个 RAID 和一个 NAS,但我们实际上并不是在谈论我)。
我经常使用该硬盘,在其上添加、编辑、删除文件。
另一方面,我有一个插入 PC(Windows 8.1)的第二个硬盘(容量相同)。第二个硬盘是第一个硬盘的克隆,是我使用 rsync 从 Ubuntu Live DVD 制作的。
嗯,显然它曾经同步过,但现在不再同步了。
您知道我要去哪里...每次我将第一个(可移动)高清硬盘插入我的电脑时,我都希望将其同步到第二个高清硬盘上。
当然,我想要一种在逻辑上类似于 rsync 的算法:文件比较、可选的孤立文件删除等......
我想我可以修复一些东西来触发自制程序的启动,该程序询问我是否要在插入第一个磁盘时启动备份(例如 UUID 检测)。
问题在于同步部分。我不需要客户端/服务器解决方案。只需要一个可以在两个本地磁盘之间进行基于文件的同步的工具。
我偶然发现许多软件看起来……充其量也不稳定。它们都使用了 rsync lib 的 Cygwin 端口,这似乎有缺陷,或者为 Windows 重新实现了整个 rsync 算法。
我确实不知道它们值多少钱,但我对此有种不祥的预感。
我想要实现的目标非常简单(对吧?)或者至少这是一个非常普遍的需求。我不敢相信这个例程还没有制定出来。这太疯狂了。
我对 Windows 开发一无所知。我是一名 Web 开发人员,了解 Unix/Linux 系统管理员。我愿意花时间做这件事,但不会一个人做。在开始乱搞之前,我需要一些指导。
顺便问一下,我考虑过软件 RAID...?好吧,我甚至想过用 git 一秒钟,所以...
答案1
我是 (可能)您在开头提到的问题的作者。一年过去了,我仍然没有找到真正的解决方案,因此我仍然依赖 Cygwin 和一些批处理魔法。
我最接近的本地解决方案是Allway 同步:
- 它具有自动同步功能(单向甚至双向) 和 UUID 绑定。
- 它只有一个方面不如 rsync:它不做增量,所以如果你在 200 GB 的 SQL 转储末尾更改了一个位,它只会复制整个文件。对于像你这样的本地同步来说,这不是什么大问题,但在网络上却很麻烦。
答案2
我用bvckup2为此。它不是免费的(尽管最后一个测试版仍然可用 - 并且它有增量副本)。我使用它的方式与您描述的非常相似。
您需要将其设置为连续备份,并启用设备跟踪 - 这是默认设置。您需要设置源和目标(初始同步时需要清空,这可能是一个问题)。之后,它会保持它们同步。它还有一个选项,可以将源中删除的文件存档到目标。如果需要,请删除。
我使用零售版通过局域网与 Windows 文件共享同步大文件(备份)和小文件(音乐),并在插入外部硬盘后将其同步到外部硬盘,这样就可以正常工作