尝试执行在我看来在文件集中非常简单的排除操作。
基本上,我想包含 /root 和 /home 并排除所有名为 .cache 和 Downloads 的目录。
FileSet {
Name = Exclusion_example
Include {
Options {
Signature = SHA1
}
File = /root
File = /home
}
Exclude {
File = Downloads
File = .cache
}
}
我尝试将它们移至选项部分并使用 Exclude=yes。我尝试使用 WildDir/WildFile,但当我使用“estimate”命令时似乎不正确:这些文件仍然列出。
有人能在这里给出确切的语法吗?我查看了 BareOS 和 Bacula 文档,但它们似乎都没有向我解释我做错了什么。
答案1
经过大量的摆弄后,我得到了下面的结果:
FileSet {
Name = "MyFileSet"
Include {
Options {
signature = MD5
Exclude = yes
WildDir = "*/\.cache"
WildDir = "*/Downloads"
}
File = /root
File = /home
}
}
Include 部分添加 /root 和 /home 文件,而 Options 部分排除您不想要的文件。options 部分允许 WildFile 和 WildDir,Include 和 Exclude 部分不允许。必须对点进行转义。请注意,使用“Downloads”而不是“*/Downloads”不会给您带来所需的结果。
您可以添加更多“包含”部分,但这些部分与“排除”部分一起应用的逻辑并不真正透明。
始终使用“估计”命令查看哪些文件将被备份,并查看排除是否按预期工作。
我建议完整阅读文档中的这两个部分(它们将使您更好地了解该机制):
https://www.bacula.org/5.0.x-manuals/en/main/main/Configuring_Director.html#SECTION001870000000000000000 https://www.bacula.org/5.0.x-manuals/en/main/main/Configuring_Director.html#SECTION001880000000000000000
希望这对其他人有帮助。