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过滤器,除了给定的(子)目录以外,不包括所有内容的主要内容,如果未能解决你的问题,请参考以下文章

rsync 不同步 .htaccess 文件

Java 从给定目录中获取所有文件名,包括子文件夹? [复制]

C#如何遍历指定目录以及指定目录下所有子文件夹,并获取除指定文件类型以外的所有文件的绝对路径?

Linux ls命令

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现偶数次。找出那个只出现了一次的元素。

[网络流24题]最长递增子序列问题