2

目前在做一些关于文件同步的研发,我最终偶然发现了 rsync(谁不会呢?)。

上下文:有一个服务器用作中央文件存储库,仅由管理员更新。几个用户从中央仓库同步他们的文件系统。这是单向同步,这意味着用户永远不会更新存储库。使用rsync进行更新。

让我们考虑一个小场景:

  1. 用户开始从服务器更新文件并下载文件 A
  2. 管理员更新服务器上的文件 A 和 B,创建 A' 和 B'

问题:第三步是什么?

  • 用户下载 B'。他有A和B',导致文件之间的状态不一致
  • 用户下载B,他有A和B,导致状态一致但过时
  • 用户下载 B' 和 A',从而获得一致且最新的状态
  • 还要别的吗 ?
4

1 回答 1

3

据我所知,这是您的第一个选择:用户将拥有 A 和 B'。避免这种情况的唯一方法是在 rsync 之前对您的文件系统进行快照,但不知何故,这感觉有点过头了。

其他解决方案可能是

  • 将 A 和 B 放在一个 zip/tar 文件中(管理员/更新者必须这样做;否则在添加第一个和第二个文件之间仍然可以更新文件
  • 使用 git(或其他 VCS)作为中央存储库
于 2012-04-20T10:46:35.390 回答