我做了很多备份。我在不同的磁盘上这样做,这些磁盘存储在不同的地方。我正在寻找一种备份,但找不到它的名称(我需要它来确定 rsync 或其他 ubuntu 工具是否可以帮助我)。
这就是我想要实现的目标。
- 始终保留主文件夹当前状态的相同副本(换句话说,每次备份后备份和主文件夹都是相同的)
- 在每次备份时,主文件夹中更改或删除的每个文件都会从备份中取出,并存储在包含备份特定日期所有更改和删除文件的文件夹中。
例如,
第一天
/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 源 -> 目标
我知道这会改变备份,但我认为考虑到我拥有的备份数量,这应该不是问题。
是否有此类备份的名称(主要问题)。如果可能的话,如何在 ubuntu 上实现它?
我不确定删除的文件是否应该成为之后每个差异的一部分。这是在每个备份的差异或一个增量的大差异之间进行选择。同样,不确定术语。
在我看来,您想要实现的正是 BackupPC 的工作方式。参见http://backuppc.sourceforge.net/
您可以使用在 Ubuntu 中安装它
但是请注意,默认安装本身不会执行任何操作。您将必须为每台要备份的机器和/或目录创建配置文件。
BackupPC 的工作方式是在第一次备份时传输文件副本,然后在后续备份中创建指向未更改文件的硬链接并复制已更改文件。因此,对于您的文件系统,当您导航到 BackupPC 备份目录时,您将获得文件在特定时间的外观方式的快照。
请参阅http://backuppc.sourceforge.net/info.html或在您的系统上安装 backuppc 并阅读那里的文档。
安装方法如下(新版本的安装过程可能有所不同):How to configure Backuppc in ubuntu 12.04?
注意不同系统(Windows/Linux/Macintosh)上不同文件系统的问题。此外,主机和备份客户端之间备份卷连接方式的差异(例如网络驱动器与本地驱动器)将对完成备份所需的时间产生巨大影响。
我只会使用 git。您可以根据需要还原更改并将您的“远程”存储库托管在硬盘驱动器、另一台计算机或您想要的任何其他内容上。您可以检查更改的状态并根据需要推送到您的存储库,这意味着不需要每日备份。话虽如此,您可能需要每日备份,在这种情况下,如果“git status”显示发生了更改,您可以编写一个 bash 脚本并将其作为 acron 作业运行。