我做了很多备份。我把它们放在不同的磁盘上,并存储在不同的地方。我正在寻找一种备份类型,但我找不到它的名字(我需要它来弄清楚 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 作业运行。