我们是否应该将其称为逆差异备份以及如何实现它?

我们是否应该将其称为逆差异备份以及如何实现它?

我做了很多备份。我把它们放在不同的磁盘上,并存储在不同的地方。我正在寻找一种备份类型,但我找不到它的名字(我需要它来弄清楚 rsync 或其他 ubuntu 工具是否可以帮助我)。

这就是我想要实现的目标。

  • 始终保留主文件夹当前状态的相同副本(换句话说,每次备份后备份和主文件夹都是相同的)
  • 每次备份时,主文件夹中更改或删除的每个文件都会从备份中取出,并存储在包含备份当天所有更改和删除的文件的文件夹中。

例如,

第 1 天

/home/joey/1.txt
/home/joey/2.txt
/home/joey/3.txt

常规老式备份:

/media/backup/joey/1.txt
/media/backup/joey/2.txt
/media/backup/joey/3.txt

第 2 天

/home/joey/1.txt
/home/joey/3.txt
# D /home/joey/2.txt is deleted

使用 joey 的精确副本进行备份,但使用一个新的 diff 文件夹:

/media/backup/joey/1.txt
/media/backup/joey/3.txt
/media/backup/day2-diff/joey/2.txt

第 3 天

/home/joey/1.txt
/home/joey/3.txt # A /home/joey/3.txt was changed
/home/joey/4.txt

再次使用 joey 的精确副本进行备份,并使用已更改文件的 diff 文件夹进行备份:

/media/backup/joey/1.txt
/media/backup/joey/3.txt # the new version
/media/backup/joey/4.txt
/media/backup/day2-diff/joey/2.txt
/media/backup/day3-diff/joey/3.txt # the old version of the backup is copied here

逻辑如下:目前我有太多备份,以至于我需要在某个时候删除它们。这很不幸,因为我至少想保留我删除和更改的文件。这种类型的备份可以让我这样做。

所以我在想

  • 试运行 rsync TARGET -> SOURCE,从 TARGET 的角度获取已更改文件的列表
  • 一个脚本,用于将这些文件复制到特定文件夹,文件夹名称中包含时间和日期
  • 常规 rsync SOURCE -> TARGET

我知道这会改变备份,但我认为,考虑到我拥有的备份数量,这应该不是问题。

这种备份有名字吗(主要问题)。如果可能的话,如何在 ubuntu 上实现它?

我不确定删除的文件是否应该成为之后每个差异的一部分。这有点像在每次备份的差异或增量的大差异之间做出选择。同样,我不确定术语。

答案1

在我看来,您想要实现的目标正是 BackupPC 的工作方式。请参阅http://backuppc.sourceforge.net/

你可以在 Ubuntu 中使用以下方式安装它

sudo apt-get install backuppc

但请注意,默认安装本身不会执行任何操作。您必须为要备份的每台机器和/或目录创建配置文件。

BackupPC 的工作方式是传输第一次备份的文件副本,然后在后续备份中创建未更改文件的硬链接并复制已更改的文件。因此,当您导航到 BackupPC 备份目录时,您将获得文件在特定时间的快照。

http://backuppc.sourceforge.net/info.html或者在您的系统上安装 backuppc 并阅读那里的文档。

安装方法如下(新版本中安装过程可能有所不同):如何在 ubuntu 12.04 中配置 Backuppc?

注意不同系统 (Windows / Linux / Macintosh) 上不同文件系统的问题。此外,主机和备份客户端之间备份卷的连接方式 (例如网络驱动器与本地驱动器) 的差异将对完成备份所需的时间产生巨大影响。

答案2

我只会使用 git。您可以根据需要恢复更改,并将“远程”存储库托管在硬盘驱动器、另一台计算机或您想要的任何其他设备上。您可以检查更改的状态并根据需要推送到您的存储库,这意味着不需要每日备份。话虽如此,您可能需要每日备份,在这种情况下,您可以编写一个 bash 脚本,并在“git status”显示发生更改时将其作为 acron 作业运行。

相关内容