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

所以,基本上,我正在寻找Linux软件来监视一个文件夹(和它的子文件夹)的任何变化,并采用某种forms的版本(即保留一个“数据库”,或从我可以恢复文件)。

传统供应链pipe理(GIT,SVN,HG等)无法做到的原因是双重的:

  • 监控和版本控制必须是自动的(唯一的标准是时间)
  • 我需要的软件是做一个特定的事情,不像供应链pipe理,他们做了很多(当然也更容易出错)

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

虽然在这里,知道我已经检查了backback ,但是我并没有留下印象,也没有犹豫使用最近7年前更新的软件(2004年)。

对不起,让其他服务器老师头疼,但我不能帮助;)

编辑:顺便说一下,虽然我更喜欢这是基于CLI的,任何替代品也非常欢迎!

编辑2:不要抨击Linux或任何东西,但与Linux(UNIX)的信号的概念,这应该不是太难写(当然由一个专门的团队)。

实际上,我使用的系统已经做到了这一点( Dropbox ),但是它具有不同的目的,因此,版本限制为30天(版本保存在在线存储中)。 但是这表明这个概念是完全可能的。

如果你不想像Zoredachebuild议的那样使用rsync,我的下一个build议是编写一个使用inotify监视变化的脚本。 这不会很困难。

然后,你的脚本是否自动将更改后的文件提交给传统的版本控制系统(如svn,git等),或者只保留文件的最后X个版本。

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

如果你愿意接受定期快照,那么你可以直接使用像dirvish或rsync的东西。 基本上你build立一个完整的文件系统副本,然后任何进一步的副本将hardlink相同的文件,新的/更改的文件将是分开的。

Dirvish基本上是rsync的前端,并使用–link-dest选项。

用户如何访问文件系统? 通过webdav访问一个选项? 你可以用apache设置SVN,并使用autoversioning 。

我知道一个这样做的方法。 这是一个专有的文件系统,并附带了一堆其他的东西,这反过来又使得它非常昂贵,但它确实做了大部分你正在寻找的东西。 它被称为NSS并与Novell的Open Enterprise Server 2一起提供。与Wayback不同,它实际上仍然受支持。 它保留了所谓的“salvage”树,它将保留“删除”数据,因为卷上的可用空间减去20%(可以configuration)。

有一点需要注意的是,它不会跟踪对特定文件的修订,只会删除和重新创build新信息的文件。 所以,Excel文件将被跟踪,但Access数据库不会。

NSS Salvage将只跟踪一段时间,这取决于卷上剩余的空闲空间。 将其与自动化系统配对,将文件从Salvage中提取出来,并转换成更传统的修订控制系统,并拥有非常强大的解决scheme。 这确实意味着与Novell打交道。