次のように、バックアップの前後にクライアントスクリプトを実行するbacula
ジョブを設定しました。
Job { Name = "my_job" Client = "my-fd" FileSet = "my-fset" Storage = "storage -ファイル " 有効=はい スケジュール=" my_sched " プール=" pool_full " JobDefs =" DefaultJob " #Max Start Delay = 3600 ジョブ前のクライアント実行= "/ path/to/before/script.sh" ジョブ後のクライアント実行= "/ path/to/after/script.sh" }
これまでに、完全バックアップを実行するようにスケジュールされています。
スケジュール{ Name = "my_sched" Run = Level = Full Pool = "pool_full" mon-Sun at 12:50 }
次のようにスケジュールされた増分バックアップを追加したいと思います。
Run = Level=Incremental IncrementalPool="pool_incr" FullPool="pool_full" mon-Sun at 21:21
質問は:
増分バックアップでクライアントスクリプトを実行してはならないことをbacula
に伝える方法は?
私が見つけた解決策は、スクリプトにJobLevelを引数として %l
Client Run Before Job = "/path/to/before/script.sh %l"
Client Run After Job = "/path/to/after/script.sh %l"
次のようなスクリプトを配置します。
#!/ bin/bash BACULA_J_LEVEL = $ 1 case $ BACULA_J_LEVEL in Full) echo "Job Level $ BACULA_J_LEVEL"; #do stuff here exit 0 ;; Differential) echo "ジョブレベル$ BACULA_J_LEVEL"; #何もしない exit 0 ;; インクリメンタル) echo "Job Level $ BACULA_J_LEVEL"; #何もしない exit 0 ;; *) echo "レベルが認識されません"; exit 1; ;; esac