Назад | Перейти на главную страницу

Bacula: как запустить скрипт после завершения 2 заданий?

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.