Bacula: Cliente executado antes do trabalho somente al Nível completo

1

Eu configurei um bacula Job que executa os scripts do cliente antes e depois do backup:

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"
}

Até agora está agendado para executar backups completos.

Schedule {
        Name = "my_sched"
        Run = Level=Full Pool="pool_full" mon-sun at 12:50
        }

Eu quero adicionar um backup incremental agendado assim:

Run = Level=Incremental IncrementalPool="pool_incr" FullPool="pool_full" mon-sun at 21:21

A pergunta é:

Como informar bacula que o backup incremental não deve executar scripts de cliente?

    
por sgargel 31.03.2017 / 12:05

1 resposta

2

A solução que encontrei é fornecer o JobLevel ao script como um argumento com %l

    Client Run Before Job = "/path/to/before/script.sh %l"
    Client Run After Job = "/path/to/after/script.sh %l"

e organizando scripts como este:

#!/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
    
por 05.04.2017 / 10:47

Tags