指定要从 rsnapshot 备份中排除的远程目录

指定要从 rsnapshot 备份中排除的远程目录

我环顾四周,没有找到我的问题的确切答案,即如何指定仅从远程文件系统备份中排除的目录。

假设我有两台机器:一台台式机(服务器)和一台笔记本电脑。我在每个目录上的主目录都是/home/tom.及其配置文件rsnapshot位于桌面 ( ) 上。因此,命令是localhostbackup

backup /home/tom/ localhost/
backup tom@laptop:/home/tom/ laptop/

一切都很好。但假设我已经使用了/home/tom/music笔记本电脑。它是从桌面复制过来的东西,而且很大。但是当我/home/tom/music/只从备份中排除tom@laptop

exclude tom@laptop:/home/tom/music/

但这并没有导致music/我被排除在外,反而导致我的疱疹发作。

这样做:

exclude /home/tom/music/

当然会导致music/被排除在备份之外localhostlaptop并导致我的 PID 突然爆发。

我现在的解决方案是简单地rsnapshot为每个主机拥有单独的配置文件,并rsnapshot为每个主机执行一次。但这应该是没有必要的。

那么如何仅从远程(笔记本电脑)备份中排除目录呢?

答案1

该行还有第四个字段backup,可用于此类任务。所以你的线路应该如下所示。

backup tom@laptop:/home/tom/ laptop/ exclude=/home/tom/music

backup您可以通过用逗号分隔选项来添加更多选项。如需进一步阅读,请参阅man的页面rsnapshot

答案2

由于这是我的谷歌搜索的最高结果,我认为以下内容也可能对其他人有帮助:

托马斯的命令有效,但它会删除所有全局定义的排除/etc/rsnapshot.conf 中的指令

为了保持现存的排除你可以使用以下内容

backup tom@laptop:/home/tom/ laptop/ +rsync_long_args=--exclude=/home/tom/music

答案3

注意等号托马斯的例子。如果您错过了它,rsnapshot configtest则会失败并显示错误,建议您使用选项卡!

您也不需要exclude=像其他一些问答所建议的那样在前面加上加号 - 如果您这样做,rsnapshot configtest则会因“串联或字符串中的未初始化值”而失败。

这是一个包含多个排除的示例:

[..]
exclude    /foo1
exclude    /foo2
[..]
backup    /from    /to    exclude=/bar,exclude=/baz

另请注意,不包括以斜线开头的内容相对于备份根目录(即相对于 $snapshot_root/from)而不是相对于服务器根目录。这让很多海报都大吃一惊!

相关内容