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过滤器,除了给定的(子)目录以外,不包括所有内容的主要内容,如果未能解决你的问题,请参考以下文章
Java 从给定目录中获取所有文件名,包括子文件夹? [复制]
C#如何遍历指定目录以及指定目录下所有子文件夹,并获取除指定文件类型以外的所有文件的绝对路径?