Rsync命令进行离线滚动备份

我已经阅读了很多文章,并试图提出我自己,但不能,所以需要帮助与Rsync命令异地滚动备份请。

我已经在两台Windows服务器(都是2008 R2)上安装了cwRsync(现在在虚拟机上作为testing运行),并且希望设置从服务器#1到#2的文件夹(其中包含许多文件夹)的滚动备份,反之亦然。

我想每周推送两次完整备份(星期一和星期四晚上八点),并且希望在第三次备份完成时删除第一个备份,依此类推。 (附表为PNG)

到目前为止,我已经通过在.cmd文件中运行以下文件夹来传输文件; 任何帮助是极大的赞赏。

REM Set HOMEPATH values SET HOMEDRIVE=%CD:~0,2% SET HOMEPATH=%CD:~3% SET CWRSYNCHOME=%CD% SET CWOLDPATH=%PATH% SET PATH=%CWRSYNCHOME%\BIN;%PATH% SET HOME=%HOMEDRIVE%\%HOMEPATH% rsync -avrz -ssh "/cygdrive/C/Test-Folder1" "[email protected]:/cygdrive/c/Test-Folder2" SET PATH=%CWOLDPATH% 

rsync是一个Rexpression式SYNC hronization工具 – 它使得目标机器上的数据看起来像机器上的数据,并且试图使它更加智能和高效。
它可以给你一个很好的备份源机器的最后一个状态,但它不会像你所描述的那样进行“滚动备份”,并且不能没有大量的外部脚本(或者大量的浪费传输) 。

为了做到你想要的,你需要:

  • rsync每晚
  • 在星期一和星期四,将目标机器上的目录完整复制到“完整备份”目录
  • 在其他所有日子里,收集已更改的文件列表(从您的rsync输出),并将其复制到“增量备份”目录。
  • 根据需要replace/覆盖完整和增量目录。

您最好使用真正的备份系统解决scheme(如Bacula)备份到磁盘上的“虚拟磁带”,然后将虚拟磁带文件rsync到您的异地存储。

看看可能做你想要的,可以支持Windows的rsnapshot 。

你的目标机器必须是Windows吗?

我已经帮助build立了一个类似的系统。 我们将rsync数据传输到FreeBSD盒子上的ZFS文件系统,然后快照ZFS文件系统。 这为您提供了两全其美的解决scheme:rsync只传输更改后的数据,ZFS快照只占用更改后的数据空间。 删除不需要的快照是非常容易的。

不幸的是,我不知道除Solaris和FreeBSD以外的其他操作系统的成熟ZFS实现。

可能存在一些Windows机器可以做类似快照的机制。 当然,NTFS支持卷影服务的类似的写入时复制function,但是我还不足以说明这种系统是否可行。

(请注意,我并不是推荐ZFS快照作为自己的备份机制,但它们可以作为这样一个更大的系统的一部分,同样,备份软件使用Windows / NTFS卷影服务,包括bacula和的BackupExec。)

编辑:(在回应你的评论)这听起来像你真正想要做的是build立一个两个网站之间的DFS共享。 这将在两个方向上实时(或多或less)镜像文件。 如果用户有可能同时打开相同的文件,那么需要注意一些问题,但总的来说,对于这种情况,这种方式非常有效。 这与备份并不是一回事,但似乎你想要的是双方的实时文件系统。 不知道DFS和意外删除,虽然其他NTFSfunction可能会覆盖你。

备份工具dirvish使用rsync作为后端来创build类似于Time Machine的旋转备份(没有真棒界面)。