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

Bacula: Клиент запускается только перед заданием на полном уровне

Я создал 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