rsync过滤器,除了给定的(子)目录以外,不包括所有内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync过滤器,除了给定的(子)目录以外,不包括所有内容相关的知识,希望对你有一定的参考价值。

我想用rsync和我的备份策略排除我明确想要的以外的所有事物做Linux系统备份。我没有找到正确的过滤规则。

我有文件sync_filter

+ /etc
+ /home
+ /opt
+ /root
+ /srv
+ /var/backup
+ /var/log
+ /var/mail
+ /var/www
- /*

我认为,我的意图很明确。我要包含/etc,依此类推,我要包含/var/log/var/mail,但是我要包含/var/cache

我在/var部分上没有成功。

正在运行rsync -av --filter "merge sync_filter" --delete root@remote:/ .将完全跳过/var部分。

[从文档中,我了解到,例如/var/backup被跳过,因为/var过滤器排除了- /*

[我也知道我可以加入+ /var,并排除例如- /var/cache,但我想通过我的备份策略排除我明确想要的以外的所有内容来成功。

答案

我此后找到了解决方案。过滤器必须是:

+ /etc
+ /home
+ /opt
+ /root
+ /srv
+ /var
+ /var/backup
+ /var/log
+ /var/mail
+ /var/www
- /var/*
- /*

以上是关于rsync过滤器,除了给定的(子)目录以外,不包括所有内容的主要内容,如果未能解决你的问题,请参考以下文章