Bacula 文件集通配符:如何包含 /folder/(任意字符串)/uploads 但排除 /folder/(任意字符串)/whatever/uploads

Bacula 文件集通配符:如何包含 /folder/(任意字符串)/uploads 但排除 /folder/(任意字符串)/whatever/uploads

我正在为 bacula 创建一条排除规则,以便它不处理文件系统中的某些缓存和临时上传文件夹。但我无法编写它

假设这个文件系统

/filestore/user1/
/filestore/user1/uploads
/filestore/user1/user_files/uploads
/filestore/user2/uploads
/filestore/user1/user_files/

主要备份规则说

File = /filestore

并排除规则

wilddir = "/filestore/*/uploads/

但会匹配所有“uploads”文件夹。有没有简单的方法/通配符/正则表达式来仅匹配第一级上传文件夹。要清楚:

/filestore/user1/uploads #match
/filestore/user1/user_files/uploads # not match
/filestore/user2/uploads #match

答案1

最后我找到了它,你可以用正则表达式来做到这一点,但在这个特殊情况下,你必须确保与 Bacula 一起工作

  regexdir = "/filestore/[^/]+/uploads"
  regexdir = "/filestore/[^/]+/cache"

而不是使用只适用于通配符的 Wilddir。Bacula 文档说使用正则表达式效率较低,但在这种情况下是强制性的。

有一个非常有用的命令叫做“bregex”,它允许您测试 bacula 正则表达式引擎,而无需经过完整的调度过程。

我将编辑问题标题,以便其他可能感兴趣的人能够清楚地了解。

相关内容