Eсть Run After
параметр в конфигах Bacula. Но что, если мне нужно дождаться завершения нескольких заданий, а затем запустить сценарий?
Сделайте все работы, кроме одной, одинаковой приоритет, то же время начала и установите параллелизм к 1, и запретить смешанные приоритеты. Затем для последнего задания установите более низкий приоритет и запланируйте его так, чтобы оно начиналось на минуту (или несколько) позже, чем другие ваши задания. Положите Run After
только на последней работе.
Например, предположим, что у вас есть задание1, задание2, задание3, задание4 и задание5. job1-4 будет иметь priority=10
, и job5 будет иметь priority=20
и Run After
. Что может случиться, так это то, что bacula будет ставить в очередь job1-4 одновременно, но запускать их один за другим (из-за Maximum Concurrent Jobs = 1
). Только когда все они будут выполнены, задание 5 будет запущено (из-за Allow Mixed Priority=no
он будет ждать завершения всех заданий с более высоким приоритетом перед его запуском), и только после завершения задания 5 запускается bacula Run After Job
сценарий). Таким образом, скрипт будет запущен только после завершения всего задания 1-5.
Вы даже можете поддерживать concurrency выше 1, если хотите запускать несколько заданий параллельно - это все равно будет работать.
Поместите все связанные задания в один сценарий, а затем используйте Run After.