Linux 服务器上的自动文件系统版本控制

Linux 服务器上的自动文件系统版本控制

所以,基本上,我正在寻找 Linux 软件来监视文件夹(及其子文件夹)的任何更改并应用某种形式的版本控制(即,保留“数据库”或其他任何内容,我可以从中恢复文件)。

使用传统 SCM(GIT、SVN、HG 等)无法做到这一点的原因有两个:

  • 监控和版本控制必须是自动的(唯一的顺序标准是时间)
  • 我需要的软件是做某件具体的事情,与 SCM 不同,SCM 可以做更多的事情(当然也更容易出错)

将要运行的服务器是非托管的 VPS,因此具有相当大的控制权 - 但恐怕不足以安装版本控制文件系统分区。

在此期间,请知悉我已退房回溯已经,但我并不觉得它有什么特别,并且不愿意使用 7 年前(2004 年)最后更新的软件。

很抱歉将麻烦转嫁给其他服务器故障用户,但我无能为力 ;)

编辑:顺便说一句,虽然我更希望它基于 CLI,但也欢迎任何替代方案!

编辑2:并不是要批评 Linux 或其他什么,但是有了 Linux(Unix)的信号概念,这应该不难编写(当然由专门的团队编写)。

事实上,我正在使用一个已经这样做的系统(Dropbox),但目的不同,因此版本控制限制为 30 天(版本控制保存在在线存储中)。但它表明这个概念是完全可行的。

答案1

如果你不想按照 Zoredache 的建议使用 rsync,我的下一个建议是编写一个脚本,使用通知来监控变化。这并不困难。

然后,您的脚本是否自动将更改的文件提交到传统的版本控制系统(如 svn、git 等)或仅将文件的最后 X 个版本保留在其他地方取决于您。

答案2

它是否真的在文件级别有版本更改,或者您是否会接受定期快照?

如果您愿意接受定期快照,那么您可以直接使用 dirvish 或 rsync 之类的东西。基本上,您会构建文件系统的完整副本,然后任何进一步的副本都会硬链接相同的文件,并且新的/更改的文件将是独立的。

Dirvish 基本上是一个前端同步并使用 --link-dest 选项。

用户如何访问文件系统?通过 webdav 访问是一种选择吗?您可以使用 apache 设置 SVN,并使用自动版本控制

答案3

我知道一种可以做到这一点的方法。它是一种专有文件系统,附带了一堆其他东西,因此价格非常昂贵,但它确实能满足您的大部分需求。它被称为 NSS,随 Novell 的 Open Enterprise Server 2 一起提供。与 Wayback 不同,它实际上仍受支持。它保留了所谓的“挽救”树,它将保留卷上可用空间减去 20%(可配置)的“已删除”数据。

需要注意的是,它不会跟踪特定文件的修订,只会跟踪被删除并重新创建的文件。因此,Excel 文件会被跟踪,但 Access 数据库不会被跟踪。

NSS Salvage 只会跟踪一段时间,具体取决于卷上剩余的可用空间。将它与一个自动系统配对,将文件从 Salvage 拉出并放入更传统的修订控制系统中,您就拥有了一个非常强大的解决方案。不过,这确实意味着要与 Novell 打交道。

相关内容