我正在为 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 正则表达式引擎,而无需经过完整的调度过程。
我将编辑问题标题,以便其他可能感兴趣的人能够清楚地了解。