从 rdiff-backup 中删除文件

从 rdiff-backup 中删除文件

我们有一个正在运行的系统,使用 rdiff-backup 进行备份。但是,备份分区空间不足,所以我们需要重新检查情况。我们确实需要一个永久的解决方案,但在此之前,我们只需要在备份分区上释放一些空间。

我找到了一些可以删除的文件*,但我不知道该怎么做。第一步当然是从实际文件系统中删除文件。但是,接下来我需要从备份中删除它(这就是我们需要空间的地方),但我不知道该怎么做。有人知道怎么做吗?

*某人——早已离职——他的主目录中有游戏和个人照片,还有多个虚拟硬盘副本

答案1

空间不足时删除操作的处理流程在非官方常见问题解答在下面如何从备份集中删除文件. 此处重复只是为了完整性。


这种方法非常危险,不应使用,除非您要删除的文件导致备份驱动器空间不足,并且删除这些文件的唯一选择是删除整个增量。

重要提示:正确来说,你应该执行第 4 步每一个镜像元数据的增量。1.1.1 之前的 Rdiff-backup 不介意通过这种方式从备份集中删除的文件有额外的镜像元数据条目,但最新版本的镜像元数据除外。但是,在 1.1.1 中,镜像元数据处理发生了变化 - rdiff-backup 现在对元数据文件进行差异处理 - 并且不知道这些差异文件中的额外条目是否会影响恢复操作。(技术说明:镜像元数据差异使用的方法与文件差异不同。它们不是 rdiff 增量文件,而是纯文本文件(不,它们也不是普通的文本差异)。因此,手动编辑它们是安全的,所以如果需要,您可以对这些差异执行第 4 步。)

  1. 检查时间——确保它不接近 rdiff-backup 的预定运行时间。同时确保 rdiff-backup 没有运行。

  2. 进入镜像目标目录并删除那里的文件或目录。

  3. 进入目标上的 rdiff-backup-data/increments 并删除那里的文件/目录的所有痕迹。重要!如果要删除目录,请确保找到并删除其所有 *.dir 文件!如果是文件,请确保找到并删除所有 *.missing 文件(如果有)。注意不要删除与您要删除的内容无关的任何内容,否则您可能无法恢复其他文件。

  4. 重要步骤!(警告:此步骤未使用 rdiff-backup 1.1.1 或更高版本进行测试)返回 rdiff-backup-data 并压缩最新的镜像元数据文件。使用性能良好的文本编辑器编辑镜像元数据文件(警告!不要使用 pico 或 nano 或其他可能自动换行的编辑器!)并删除对您删除的文件或目录的所有引用。请务必小心,不要弄乱文件的格式。

答案2

rdiff-backup 的官方 github 存储库现在有一个脚本可以执行此操作:

https://github.com/rdiff-backup/rdiff-backup/blob/master/src/rdiff-backup-delete

其他答案中引用的脚本似乎不再可用。

答案3

似乎有人编写了一个脚本来执行上述步骤https://www.eugenemakerspace.com/wiki/Sites/Rdiff-backup-delete

我没有测试,但选择了一种“保护”方式,删除了两周内已经消失的所有文件,方法是运行

rdiff-backup --remove-older-than 2W host.net::/remote-dir

更多示例http://www.nongnu.org/rdiff-backup/examples.html

相关内容