如何在 Rsnapshot 远程备份启动之前压缩文件?

如何在 Rsnapshot 远程备份启动之前压缩文件?

我有一些远程服务器和一个备份服务器,我正在使用 Rsnapshot 在备份服务器上进行远程备份。在我的计划中,我想先运行 shell 脚本来压缩文件,然后 Rsnapshot 可以备份压缩文件。在 Rsnapshot 配置文件中,我找到了cmd_preexec,我想使用它,但我不知道如何编写压缩脚本。有人能帮我写一下脚本吗?

任何帮助都将不胜感激。谢谢。

答案1

问题是,你为什么要压缩?

压缩以提高传输速度

如果要压缩传输速度,可以向 rsync 添加一个参数以启用传输过程中的即时压缩:

rsync_short_args -az来源

压缩以减少备份磁盘的空间要求

rsnapshot 似乎对压缩备份的处理相当糟糕。我找到了一种在备份服务器上压缩文件的解决方案:

(...) (第二及以后) 存档集中的某些文件可以压缩,那些不在链接集中的文件。

find daily.1 -links 1 -size +1M ! -name "*.bz2" -print | grep -v \.svn | xargs pbzip2 -v

恢复

find daily.1 -links 1 -name "*.bz2" -print | xargs pbzip2 -d -v

仅针对配置中最短的第二个存档集(例如 hourly.1、daily.1 或 weekly.1)运行该操作。

来源)。

如果您想在不干扰的情况下减少空间需求,您也可以在目标文件系统本身上使用透明压缩。我知道 ZFS 和 BTRFS 本身就提供此功能。如果您的硬盘是 SSD,它可能已经在内部对所有文件进行了透明压缩。

相关内容