Bacula 配置中有一个Run After
参数。但如果我需要等待几个作业完成后再运行我的脚本怎么办?
答案1
让除一项工作外的所有工作都具有相同优先事项,相同的开始时间,并设置并发为 1,并且禁止混合优先级。然后,为最后一项工作设置较低的优先级,并安排它比其他工作晚一分钟(或几分钟)开始。将 only 放在Run After
最后一项工作上。
例如,假设您有作业 1、作业 2、作业 3、作业 4 和作业 5。作业 1-4 将具有priority=10
,而作业 5 将具有priority=20
和Run After
。将会发生的情况是 bacula 会同时将作业 1-4 排队,但会逐个运行它们(由于Maximum Concurrent Jobs = 1
)。只有当它们全部完成后,作业 5 才会运行(因为Allow Mixed Priority=no
它会等待所有更高优先级的作业完成后才开始运行),并且只有当作业 5 完成时,bacula 才会运行Run After Job
脚本)。因此,只有在作业 1-5 全部完成后才会运行脚本。
如果您想并行运行多个作业,甚至可以将并发度保持在 1 以上 - 它仍然可以工作。
答案2
将所有相关工作放入一个脚本中,然后使用 Run After。