如何在 rsnapshot 中截断备份路径

and*_*s-h 8 rsnapshot

我不确定标题是否真的正确。我的 rsnapshot.conf 中有一行

backup  root@123.123.123.123:/mnt/rsnapshot/      srv01/
Run Code Online (Sandbox Code Playgroud)

所以 rsnapshot 创建一个导演RSNAPSHOT_ROOT/daily.0/srv01/mnt/rsnapshot并将备份文件放在那里。对我来说,这/mnt/rsnapshot部分是不必要的;我宁愿将备份文件直接放在RSNAPSHOT_ROOT/daily.0/srv01/. 有没有办法实现这一目标?

Ste*_*day 13

rsnapshot使用--relative标志rsync来保留路径名信息。在大多数情况下,您可能确实希望保留(至少部分)该信息,尤其是在备份本地目录时。但是,就您而言,您确实不需要保留前导路径前缀。

使用rsync(v.2.6.7+) 的最新版本,您可以--relative通过./在所需的切割点插入 a来显式控制保存的路径名前缀部分。在./没有有效改变路径,但它告诉rsync你想--relative只保留后面的路径名的一部分./。由于您想切断整个路径名,您只需将 附加./到源路径的末尾,如下所示:

backup  root@123.123.123.123:/mnt/rsnapshot/./  srv01/
Run Code Online (Sandbox Code Playgroud)

编辑

好的,所以看起来这个./技巧在这种情况下不起作用,因为rsnapshot去掉了尾随的/. 相反,您应该能够--relative在每个备份点的基础上禁用该选项,方法是在您的backup行中添加第四列,如下所示:

backup  root@123.123.123.123:/mnt/rsnapshot/  srv01/  +rsync_long_args=--no-relative
Run Code Online (Sandbox Code Playgroud)

+rsync_long_args通知rsnapshot要追加到现有的rsync_long_args选项,只有当前的备份点。通过附加--no-relativersync_long_args,您可以达到预期的关闭效果--relative

  • @andreas-h:查看编辑。我希望这能为您解决。 (2认同)

小智 5

史蒂文的第一个使用建议./确实适用于 rsnapshot,您只需将其输入两次:

backup  root@123.123.123.123:/mnt/rsnapshot/././  srv01/
Run Code Online (Sandbox Code Playgroud)

Rsnapshot 将去掉最后一个斜杠,但第一个点适用于 rsync。