web-dev-qa-db-ja.com

Bacula:2つのジョブが終了した後にスクリプトを実行する方法は?

Baculaの設定にはRun Afterパラメーターがあります。しかし、いくつかのジョブが終了するのを待ってからスクリプトを実行する必要がある場合はどうなりますか?

1
Sergey

1つを除くすべてのジョブを同じ 優先度 、同じ開始時刻にし、 同時実行 を1に設定し、 混合優先度を禁止 にします。次に、最後のジョブについて、優先度を低く設定し、他のジョブより1分(または数分)遅れて開始するようにスケジュールします。 Run Afterをその最後のジョブにのみ配置します。

たとえば、job1、job2、job3、job4、job5があるとします。 job1-4にはpriority=10があり、job5にはpriority=20Run Afterがあります。何が起こるかというと、baculaはjob1-4を同時にキューに入れますが、それらを1つずつ実行します(Maximum Concurrent Jobs = 1のため)。それらがすべて完了した場合にのみ、job5が実行され(Allow Mixed Priority=noにより、優先度の高いすべてのジョブが完了するのを待ってから開始します)、job5が完了した場合にのみ、baculaはRun After Jobスクリプトを実行します。 )。したがって、スクリプトは、job1〜5がすべて完了した後にのみ実行されます。

複数のジョブを並行して実行したい場合は、同時実行性を1より高く保つこともできます-それでも機能します。

2
Matija Nalis

関連するすべてのジョブを1つのスクリプトにまとめてから、[実行後]を使用します。

1
MDMarra