我正在使用 Rsnapshot 将我的服务器文件备份到远程服务器。为了最小化文件大小,我想将备份文件打包成 tar,但我不知道如何使用 Rsnapshot 来做到这一点。
有人能帮我吗?任何帮助我都会很感激。谢谢。
答案1
您可以使用cmd_postexec
配置设置在 rsnapshot 完成后运行自定义脚本。然后该脚本可以执行任何您想要的操作。
然而,事后再对文件进行 tar 处理,如果有任何效果的话,增加磁盘使用情况。很可能相差很多。默认情况下,rsnapshot 将选项传递给 rsync,以便 rsync 将任何未更改的文件硬链接到同一文件的先前修订版。
- tar 添加了一些通常是单独存在的元数据(例如,文件路径/名称、权限等),与仅保留文件原始状态相比,会导致磁盘空间使用量略有增加。
- tar 本身不进行任何压缩(尽管您可以通过 gzip、bzip2、xz 等压缩器运行生成的 .tar 文件)。
- 通过在 rsync 完成后对树进行 tar 处理,您将失去在修订之间进行硬链接的能力,因此每个备份树 tar 文件必须包含完整内容,而不仅仅是与上一修订版相比的差异。
我能想到的解决上述第三点的唯一方法是将整个目标目录结构(snapshot_root
rsnapshot 配置中指定的目录结构)打包成 tar,但您需要在 rsnapshot 开始运行 rsync 之前将其解压(cmd_preexec
如果您确实想这样做,可以通过执行脚本来完成),然后重新打包。这将使峰值磁盘空间使用量增加大约一倍,并显著增加执行 rsnapshot 所需的时间,例如根本没有任何实际好处。
只需按预期方式使用 rsnapshot 即可。这样更简单,而且我认为它没有任何缺点,可以通过虔诚地运行tar
备份来解决。
如果你有一个具体问题了解 rsnapshot 如何保存副本,然后关注这一点,而不是 tar(它可能是也可能不是您遇到的任何问题的解决方案)。