web-dev-qa-db-ja.com

Bacula:クライアントはジョブの前にのみ実行フルレベル

次のように、バックアップの前後にクライアントスクリプトを実行する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に伝える方法は?

1
sgargel

私が見つけた解決策は、スクリプトに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 
2
sgargel