rsync 的通配符驱动过滤器规则文件的正确语法是什么?
What is proper syntax for wildcard driven filter rules file for rsync?
我正在尝试使用一个过滤规则文件,该文件使用 include/exclude 行的通配符来驱动 运行 rsync 包含和排除的内容以备份服务器。
我正在使用如下命令行:
rsync -avzh --filter="merge rsync_backup_filter" / user@backupserver:/backup-data
其中 rsync_backup_filter 目前类似于
+ /var
+ /var/www
+ /var/www/webapp1/***
+ /var/www/webapp2/***
- /var/www/*/repo
+ /home/***
+ /etc/***
- *
但是上面的过滤规则语法不太正确,因为结果实际上与我的意图不符。 repo
子文件夹未被排除,因为我正在努力实现。
- 我希望能够使用类似于最后一个条目的内容来排除上述规则中未明确(使用通配符)的任何内容
- 我希望能够包含某些路径(在上面的示例中包括 webapp 路径)并指示应包含该点以下的所有文件和文件夹,但也能够在先前的通配符中添加排除项(在上面的例子我想在任何 webapp 路径中排除
repo
子目录,所以本质上说 "all except" 在某些路径中
- 以上只是一个片段,较长版本的文件将是服务器从根目录开始的完整备份策略
构建过滤规则文件的正确方法是什么,以及使用通配符实现我所描述的内容的正确方法是什么?
过滤规则构成一个有序集,评估会一直持续到出现第一个匹配项为止。因此,如果您将排除规则向上移动 - 至少到第 3 行,所有回购文件夹都将被排除。
我正在尝试使用一个过滤规则文件,该文件使用 include/exclude 行的通配符来驱动 运行 rsync 包含和排除的内容以备份服务器。
我正在使用如下命令行:
rsync -avzh --filter="merge rsync_backup_filter" / user@backupserver:/backup-data
其中 rsync_backup_filter 目前类似于
+ /var
+ /var/www
+ /var/www/webapp1/***
+ /var/www/webapp2/***
- /var/www/*/repo
+ /home/***
+ /etc/***
- *
但是上面的过滤规则语法不太正确,因为结果实际上与我的意图不符。 repo
子文件夹未被排除,因为我正在努力实现。
- 我希望能够使用类似于最后一个条目的内容来排除上述规则中未明确(使用通配符)的任何内容
- 我希望能够包含某些路径(在上面的示例中包括 webapp 路径)并指示应包含该点以下的所有文件和文件夹,但也能够在先前的通配符中添加排除项(在上面的例子我想在任何 webapp 路径中排除
repo
子目录,所以本质上说 "all except" 在某些路径中 - 以上只是一个片段,较长版本的文件将是服务器从根目录开始的完整备份策略
构建过滤规则文件的正确方法是什么,以及使用通配符实现我所描述的内容的正确方法是什么?
过滤规则构成一个有序集,评估会一直持续到出现第一个匹配项为止。因此,如果您将排除规则向上移动 - 至少到第 3 行,所有回购文件夹都将被排除。