我正在寻找一种方法来为具有多个不共享相同文件集的作业定义的客户端执行批量(非交互式)恢复。
对于具有单个文件集的客户端,我可以发出
restore client="example.eu" jobid=99,152 where="/tmp" select current all done yes
当通过管道传输时,它将bconsole
为给定的作业 ID(属于单个文件集)安排一个恢复作业。
当特定客户端 bconsole 提示存在多个文件集时:
Using Catalog "MyCatalog"
The defined FileSet resources are:
1: example.eu fileset_1
2: example.eu fileset_2
3: example.eu fileset_3
Select FileSet resource (1-3):
这使得我无法将其作为批处理作业运行。
那么,如何才能让目录中有多个文件集的客户端具有相同的批处理行为?
我希望fileset=fileset_1
在恢复命令中有类似的选项。
答案1
以防有人最终遇到这种情况,经过一番挖掘之后,我最终将这个过程分为几个步骤:
- 找到描述我需要的备份的作业 ID。(一个完整备份,可能还有差异备份或增量备份的组合)
- 在我的 bacula director 系统上找到这些作业备份的所有文件并将它们放入一个文件中。
- 使用
restore
的file=</tmp/file_list
选项告诉 bacula 获取file_list
文件中列出的文件。
restore client="example.eu" jobid=99,152 file=</tmp/file select current all done yes
我对这个解决方案不是很满意,因为我希望恢复对我来说更加透明。
答案2
不是很专业,但您可以尝试使用“bextract”进行恢复吗?“-i”选项指定包含要提取的文件夹和文件列表的包含文件。完整命令应如下所示:bextract -i -b /archive/device /path/to/restore