用Mercurial和Robocopy备份?

问题

我们希望将我们的关键文件从多个networking共享备份到可移动硬盘。 我们希望自动备份,所以我们不必记得运行它。 它需要在一夜之间完成。 此外,我们希望能够保留每个文件的多个版本,以便我们更容易地退出用户的错误。

背景信息

我在一个大型的基于Windows的企业中工作,负责所有的备份。 他们的备份面向灾难恢复,而不是用户错误,并要求上级pipe理层批准任何非灾难恢复。 有好几次我们注意到我们的备份失败了,我们没有通知。 我没有服务器或桌面的pipe理权限。 我们正在尝试备份大约240千兆字节的大约198,000个文件。 这些文件很less改变。 我们的备份驱动器是一兆兆字节。

我的build议解决scheme

我想要做的是使用带有/ mir选项的Robocopy和Mercurial SCM编写batch file来存储文件的所有版本。 在每次执行Robocopy之前,我都会先执行hg add,然后执行hg commit来保存当前状态,然后创build文件结构的镜像副本。 问题是/ mir将删除源文件中不存在的每个文件夹,并且Mercurial将存储库存储在目标文件夹中的.hg文件夹中。

有人知道我怎么能说服Mercurial存储在其他地方的.hg文件夹,或说服Robocopy不要从目的地删除它?

我试图避免写一个自定义程序来做复制。

要忽略某些文件exentions而执行镜像,请尝试以下操作:

robocopy c:\temp\source c:\temp\dest /e /purge /xf *.hg 

我在这里testing了一下,它似乎将.hg文件保留在目标上

我还推荐使用/ z标志(对于大文件可重启),并且在处理具有不同时间粒度的服务器时不得不求助于/ fft标志: http : //www.readynas.com/forum/viewtopic.php ΔT= 3573

编辑:…我上面的例子假设名为*。hg的文件…做同样的,忽略名为* .hg的目录,使用这个:

 robocopy c:\temp\source c:\temp\dest /e /z /purge /xd *.hg 

首先,我想指出的是,您可能是从错误的angular度来看待问题:理论上,您应该写下一个更好的备份解决scheme的业务案例,让您的pipe理层将其提交给中央IT部门,然后让他们自己整理一下。

现在,这是不可能的,你将面对这个提议中的一些问题。 第一个是Mercurial不是为你想做的而build的,也不是Robocopy。 您可以通过将备份位置本身作为存储库进行贬低来find解决问题的方法,但这并不是非常有效。

我会调查两个不同的轨道。

第一个是使用卷影复制创build一个快照历史logging,您可以将其存储在服务器上的不同磁盘arrays上(您似乎正在文件服务器上运行Windows,并且假设您有最新版本的2008或更高版本) 。 这将给你一个简单的方法来恢复用户文件(实际上用户将能够恢复自己的文件本身),同时保持备份大小接近数据大小。 这样做的缺点是你需要在服务器上设置pipe理员权限才能设置,所以你的ITpipe理员没有办法(我个人认为这是个好主意,但那只是我自己)。

第二个select是咬紧牙关,得到一个“真正的”备份软件。 如果你的数据足够重要,那么你可以为这个投资做一个商业案例。 如果没有,您可以随时使用Cobian备份来创build文件的增量副本作为用户级任务,或者,如果您真的想使用mercurial,请使用Cobian备份而不是Robocopy来创build存储库副本。

既然你已经在谈论Windows和robocopy,我有另外一个解决scheme,而不需要Robocopy或Mercurial。 场外的东西有点棘手,但你至less要实时备份所有关键文件。

你有两个select开始:

  1. 注册微软合作伙伴networking,并为行动宝盒订购掏出300美元
  2. 从Dell或HP购买支持Microsoft DPM的服务器

无论哪种方式,你最终可以得到一个完整的DPM盒子,或者至less可以安装在备用机器上的软件。 DPM在进行networking共享备份方面非常出色,只需每分钟备份一次。 它也可以进行卷影副本,以便用户在备份时可以使用这些文件。 最后,它也允许最终用户恢复选项,如果你愿意的话,它可以在一定程度上让你脱离混合。

如果您需要离线function,您还可以在您的新服务器中购买磁带机或embedded式磁带机。 如果您宁愿做可移动磁盘存储,请查看名为Firestreamer的产品。 它允许您使用磁盘到可移动磁盘存储。

无论哪种方式,长期来看,这是一个更好的解决scheme,比使用robocopy和存储位置的cron作业更可靠,相信我! 总体而言,您的成本从500美元到5000美元不等,具体取决于您想要做什么,但这是值得的精神和稳定。