Я создал bacula
Задание, которое запускает клиентские скрипты до и после резервного копирования, например:
Job { Name = "my_job" Client = "my-fd" FileSet = "my-fset" Storage = "storage-File" Enabled = yes Schedule = "my_sched" Pool = "pool_full" JobDefs = "DefaultJob" #Max Start Delay = 3600 Client Run Before Job = "/path/to/before/script.sh" Client Run After Job = "/path/to/after/script.sh" }
К настоящему времени планируется запускать полное резервное копирование.
Schedule { 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 "Job Level $BACULA_J_LEVEL"; # do nothing exit 0 ;; Incremental) echo "Job Level $BACULA_J_LEVEL"; # do nothing exit 0 ;; *) echo "Level not recognized"; exit 1; ;; esac