Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalacao_e_configuracao_do_bacula_server_no_debian_wheezy_e_configuracao_de_clientes_linux_e_windows_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalação e Configuração do Bacula Server no Debian Wheezy e Configuração de Clientes Linux e Windows ​ ======
  
 +
 +  * Disco de 100GB para os backups
 +  * ip do servidor: 192.168.0.80
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialwheezy_en para que não falte nenhum pacote ou configuração.
 +
 +
 +Vamos ajustar o hosts
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​localhost
 +192.168.0.80 ​   bacula.douglasqsantos.com.br ​     bacula
 +[...]
 +</​sxh>​
 +
 +Vamos instalar os pré-requisitos para podermos compilar o bacula
 +<sxh bash>
 +aptitude install libreadline-dev libreadline6-dev postgresql postgresql-client postgresql-common postgresql-contrib liblzo2-2 liblzo2-dev \
 +postgresql-doc postgresql-server-dev-all ​ postgresql-server-dev-9.1 libreadline6-dev libreadline6 lib32readline6 lib32readline6-dev makepasswd \
 +libclass-dbi-pg-perl libcompress-zlib-perl zlib-bin zlib1g-dev libio-compress-zlib-perl libghc-zlib-dev libssl-dev acl-dev libacl1-dev -y
 +</​sxh>​
 +
 +Agora vamos ajustar o acesso ao postgresql
 +<sxh bash>
 +sed -i "​s/#​listen_addresses = '​localhost'/​listen_addresses = '​*'/​g"​ /​etc/​postgresql/​9.1/​main/​postgresql.conf
 +</​sxh>​
 +
 +Agora precisamos reiniciar o postgresql
 +<sxh bash>
 +/​etc/​init.d/​postgresql restart
 +</​sxh>​
 +
 +Agora vamos criar um arquivo para importar para preparar a base para o bacula
 +<sxh bash>
 +vim /​tmp/​base.sql
 +ALTER USER postgres WITH PASSWORD '​senha';​
 +CREATE USER bacula WITH PASSWORD '​senha';​
 +CREATE DATABASE bacula WITH OWNER bacula ENCODING '​SQL_ASCII'​ TEMPLATE=template0;​
 +</​sxh>​
 +
 +Agora precisamos importar a base
 +<sxh bash>
 +su postgres -c 'psql -f /​tmp/​base.sql'​
 +</​sxh>​
 +
 +Agora vamos criar os diretórios para o bacula
 +<sxh bash>
 +mkdir /​var/​lib/​bacula
 +mkdir /​var/​run/​bacula
 +mkdir /​var/​log/​bacula
 +mkdir -p /​etc/​bacula/​scripts
 +</​sxh>​
 +
 +Agora vamos criar o usuário bacula
 +<sxh bash>
 +useradd -s /bin/bash -d /​var/​lib/​bacula ​ bacula
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos diretórios
 +<sxh bash>
 +chown -R bacula:​bacula /​var/​lib/​bacula /​var/​run/​bacula /​var/​log/​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos obter o pacote do bacula
 +<sxh bash>
 +cd /usr/src
 +wget -c http://​wiki.douglasqsantos.com.br/​Downloads/​bacula/​bacula-5.2.13.tar.gz
 +</​sxh>​
 +
 +Agora vamos desempacotar o bacula
 +<sxh bash>
 +tar -xzvf bacula-5.2.13.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar a pasta do bacula
 +<sxh bash>
 +cd bacula-5.2.13/​
 +</​sxh>​
 +
 +Agora vamos preparar o pacote do bacula
 +<sxh bash>
 +CFLAGS="​-g -Wall" ./configure --enable-smartalloc --with-postgresql ​ --with-db-name=bacula --with-db-user=bacula --with-db-password=senha \
 +--with-db-port=5432 --with-working-dir=/​var/​lib/​bacula --with-pid-dir=/​var/​run/​bacula --with-logdir=/​var/​log/​bacula --with-readline=/​usr/​include/​readline \
 +--disable-conio --with-scriptdir=/​etc/​bacula/​scripts
 +</​sxh>​
 +
 +Agora vamos mandar compilar o bacula
 +<sxh bash>
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar o bacula
 +<sxh bash>
 +make install
 +</​sxh>​
 +
 +Agora vamos mandar instalar os binários de inicialização do bacula
 +<sxh bash>
 +make install-autostart
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos arquivos
 +<sxh bash>
 +chown -R bacula:​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos preparar o banco de dados para o bacula
 +<sxh bash>
 +su - bacula -c '/​etc/​bacula/​scripts/​make_postgresql_tables -U bacula -d bacula'​
 +</​sxh>​
 +
 +Agora vamos desabilitar o shell do bacula
 +<sxh bash>
 +usermod -s /bin/false bacula
 +</​sxh>​
 +
 +Agora vamos fazer o backup dos arquivos de configuração do bacula
 +<sxh bash>
 +mkdir /​usr/​src/​olds
 +cp -Rfa /etc/bacula /​usr/​src/​olds
 +</​sxh>​
 +
 +Agora vamos deixar o arquivo do director do bacula da seguinte forma
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir.conf
 +############################################​
 +# ARQUIVO DE CONFIGURACAO PADRAO DO BACULA #
 +############################################​
 +
 +# DEFININDO O '​DIRECTOR'​ #
 +
 +Director {
 +  Name = bacula-dir
 +  DIRport = 9101                                      # Porta de Comunicacao do Bacula
 +  QueryFile = "/​etc/​bacula/​scripts/​query.sql" ​        # Script de Query
 +  WorkingDirectory = "/​var/​lib/​bacula" ​               # Diretório de Trabalho do Bacula
 +  PidDirectory = "/​var/​run/​bacula" ​                   # PID do Bacula
 +  Maximum Concurrent Jobs = 1                         # Maximo de Backups em Execucao
 +  Password = "​Cv70F6pf1t6pBopT4vQOnigDrR0v3L" ​        # Senha para ajustar no Bconsole
 +  Messages = Daemon ​                                  # Nivel de mensagens
 +}
 +
 +# DEFINICOES DE CLIENTES E JOBS #
 +# ARQUIVO ONDE SERA CONFIGURADO E AJUSTADO OS CLIENTES E JOBS DO BACULA #
 +
 +@/​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +
 +# DEFINICOES DE ARQUIVOS PARA BACKUP - (FILE SETS)#
 +# ARQUIVO ONDE SERA CONFIGURADO E AJUSTADO OS 'FILE SETS' DO BACULA #
 +
 +@/​etc/​bacula/​bacula-dir-filesets.conf
 +
 +
 +# DEFINICOES DE AGENDAMENTO DOS BACKUPS #
 +@/​etc/​bacula/​bacula-dir-agendamento.conf
 +
 +
 +# DEFINICOES DE DISPOSITIVO DE ARMAZENAMENTO #
 +# AQUI DEFINIMOS O STORAGE A SER UTILIZADO PELO BACULA #
 +
 +
 +Storage {
 +  Name = File
 +  Address = bacula.douglasqsantos.com.br ​                      # Pode ser usado Nome ou IP
 +  SDPort = 9103                                      # Porta de Comunicação do Storage
 +  Password = "​LE_T_-c_55qu1f777Dm52map-s3xpgR4q" ​    # Senha Storage Bacula
 +  Device = FileStorage ​                              # Device de Storage
 +  Media Type = File                                  # Tipo de Midia (Fita, DVD, HD)
 +  Maximum Concurrent Jobs = 10                       # Num. Maximo de Jobs executados nessa Storage.
 +}
 +
 +# Generic catalog service
 +Catalog {
 +  Name = Catalogo ​           # Nome do Catalogo
 +  dbname = "​bacula";​ dbaddress = 127.0.0.1; ​ dbuser = "​bacula";​ dbpassword = "​senha" ​ # Configuracoes do PostGreSQL
 +}
 +
 +# Reasonable message delivery -- send most everything to email address
 +#  and to the console
 +Messages {
 +  Name = Standard
 +
 +# ABAIXO E POSSIVEL AJUSTAR COMO O BACULA ENVIARA MENSAGENS AO ADMINISTRADOR #
 +
 +  mailcommand = "/​sbin/​bsmtp -h localhost -f \"​\(Bacula\) \<​%r\>​\"​ -s \"​Bacula:​ %t %e of %c %l\" %r"
 +  operatorcommand = "/​sbin/​bsmtp -h localhost -f \"​\(Bacula\) \<​%r\>​\"​ -s \"​Bacula:​ Intervention needed for %j\" %r"
 +  mail = root@localhost = all, !skipped
 +  operator = root@localhost = mount
 +  console = all, !skipped, !saved
 +  append = "/​var/​log/​bacula/​bacula.log"​ = all, !skipped
 +  catalog = all
 +}
 +
 +# Message delivery for daemon messages (no job).
 +Messages {
 +  Name = Daemon
 +  mailcommand = "/​sbin/​bsmtp -h localhost -f \"​\(Bacula\) \<​%r\>​\"​ -s \"​Bacula daemon message\"​ %r"
 +  mail = root@localhost = all, !skipped
 +  console = all, !skipped, !saved
 +  append = "/​var/​log/​bacula/​bacula.log"​ = all, !skipped
 +}
 +
 +# POOL PADRAO DEFINIDO
 +Pool {
 +  Name = File                         # o Job de Backup por padrao aponta para o '​File'​
 +  Pool Type = Backup ​         # O Tipo do Pool = Backup, Restore, Etc.
 +  Recycle = yes                       # Bacula can automatically recycle Volumes
 +  AutoPrune = yes                     # Prune expired volumes
 +  Volume Retention = 1 month          # Retencao de Volume = 1 Mes
 +  Volume Use Duration = 23 hours      # Duracao de um volume aberto
 +  Maximum Volume Bytes = 20 Gb        # Tamanho maximo de um volume
 +  Maximum Volumes ​     = 10           # Volume Bytes X Volumes <= Dispositivo de backup
 +  LabelFormat ​         = "​volume" ​    # Nome Default do Volume
 +}
 +
 +
 +# Scratch pool definition
 +# Volumes que serao emprestado a alguma Pool temporariamente
 +Pool {
 +  Name = Scratch
 +  Pool Type = Backup
 +}
 +
 +#
 +# Restricted console used by tray-monitor to get the status of the director
 +#
 +Console {
 +  Name = bacula-mon
 +  Password = "​aNy+nof5uHWBvO3tv8YRy5OJo3YVDsuAuET06WRmDcuw"​
 +  CommandACL = status, .status
 +}
 +</​sxh>​
 +
 +Agora vamos criar o arquivo que controla os agendamentos do bacula
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-agendamento.conf
 +#################################################################​
 +## ARQUIVO DE CONFIGURACAO DE AGENDAMENTO DE TAREFAS DO BACULA ##
 +#################################################################​
 +# DEFINICOES DE AGENDAMENTO DOS BACKUPS #
 +
 +# AGENDAMENTO PADRAO DO BACULA - CICLO SEMANAL DE BACKUP #
 +Schedule {
 +  Name = "​WeeklyCycle" ​                         # Ciclo Semanal de Backup
 +  Run = Level=Full 1st sun at 23:05                   # Backup Full no Primeiro Domingo do Mes as 23:05 hrs
 +  Run = Level=Differential 2nd-5th sun at 16:50       # Backup Diferencial de Seg. a Sabado as 23:05 hrs
 +  Run = Level=Incremental mon-sat at 10:30            # Backup Incremental de Seg. a Sabado as 23:05 hrs
 +}
 +
 +# AGENDAMENTO PARA SERVIDOR LINUX - CICLO SEMANAL DE BACKUP #
 +Schedule {
 +  Name = "​CicloBackupProxy"​
 +  Run = Level=Full 1st sun at 23:00
 +  Run = Level=Full mon-sat at 10:00
 +}
 +
 +# AGENDAMENTO PARA SERVIDOR WINDOWS SERVER - CICLO SEMANAL DE BACKUP #
 +Schedule {
 +  Name = "​CicloBackupWindows" ​                         # Ciclo Semanal de Backup
 +  Run = Level=Full 1st sun at 23:00                          # Backup Full no Primeiro Domingo do Mes as 23:05 hrs
 +  Run = Level=Differential 2nd-5th sun at 14:10              # Backup Diferencial de Seg. a Sabado as 11:40 hrs
 +  Run = Level=Full mon-sat at 10:00                          # Backup Incremental de Seg. a Sabado as 11:25
 +}
 +
 +# DEFINICOES DE AGENDAMENTO DO BACKUP DOS CATALOGOS #
 +#        FEITO SEMPRE DEPOIS DOS BACKUPS ​           #
 +Schedule {
 +  Name = "​WeeklyCycleAfterBackup"​
 +  Run = Level=Full sun-sat at 09:15
 +}
 +</​sxh>​
 +
 +Agora vamos criar o arquivo de controle dos clientes do bacula e jobs do bacula
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +###################################################​
 +## ARQUIVO DE CONFIGURACAO PARA CLIENTES E JOBS  ##
 +###################################################​
 +
 +# JOB PADRAO PARA O BACULA SERVER #
 +JobDefs {
 +        Name = "​DefaultJobs" ​                           # Nome do Job Padrao
 +        Type = Backup ​                                  # Tipo de Job (Backup, Restore, Verificacao)
 +        Level = Incremental ​                            # Nivel do Job (Full, Incremental,​ Diferencial)
 +        Client = bacula-fd ​                             # Nome do Cliente FD
 +        FileSet = "Full Set" ​                           # File Set Definido para Esse Job
 +        Schedule = "​WeeklyCycle" ​                       # Agendamento Definido para Esse Job
 +        Storage = File                                  # Define Storage
 +        Messages = Standard ​                            # Nivel de mensagens
 +        Pool = File                                     # Define a Pool
 +        Priority = 10                                   # Qual o nivel de Prioridade
 +        Write Bootstrap = "/​var/​lib/​bacula/​%c.bsr" ​     # Arquivo gerado pelo Bacula para armazenar informacoes de backups feitos em seus clientes.
 +# AS OPCOES ABAIXO EVITAM QUE SEJAM DUPLICADO JOBS NO SERVIDOR, CASO TENHA UM JOB DUPLICADO O MESMO E CANCELADO
 +        Allow Duplicate Jobs = no                       # Permite Jobs Duplicados
 +        Cancel Lower Level Duplicates = yes             # Cancela niveis inferiores duplicados
 +}
 +
 +# JOB DE BACKUP PARA OS SERVIDORES WINDOWS SERVER #
 +JobDefs {
 +        Name = "​DefaultWindows" ​                        # Nome do Job Para Servidores Windows
 +        Type = Backup ​                                  # Tipo de Job (Backup, Restore, Verificacao)
 +        Level = Incremental ​                            # Nivel do Job (Full, Incremental,​ Diferencial)
 +        Client = bacula-fd ​                             # Nome do Cliente FD
 +        FileSet = "​WindowsFS" ​                          # File Set Definido para Esse Job
 +        Schedule = "​CicloBackupWindows" ​                # Agendamento Definido para Esse Job
 +        Storage = File                                  # Define Storage
 +        Messages = Standard ​                            # Nivel de mensagens
 +        Pool = File                                     # Define a Pool
 +        Priority = 10                                   # Qual o nivel de Prioridade
 +        Write Bootstrap = "/​var/​lib/​bacula/​%c.bsr" ​     # Arquivo gerado pelo Bacula para armazenar informacoes de backups feitos em seus clientes.
 +# AS OPCOES ABAIXO EVITAM QUE SEJAM DUPLICADO JOBS NO SERVIDOR, CASO TENHA UM JOB DUPLICADO O MESMO E CANCELADO
 +        Allow Duplicate Jobs = no                       # Permite Jobs Duplicados
 +        Cancel Lower Level Duplicates = yes             # Cancela niveis inferiores duplicados
 +}
 +
 +# JOB DE BACKUP DO CATALOGO #
 +Job {
 +        Name = "​BackupCatalogo" ​                                                   # Nome do Job Para Backup do Catalogo
 +        JobDefs = "​DefaultJobs" ​                                                   # JobDefs usado para operacao
 +        Level = Full                                                               # Nivel do Job (Full, Incremental,​ Diferencial)
 +        FileSet = "​Catalogo" ​                                                      # File Set Definido para Esse Job
 +        Schedule = "​WeeklyCycleAfterBackup" ​                                       # Agendamento Definido para Esse Job
 +        RunBeforeJob = "/​etc/​bacula/​scripts/​make_catalog_backup.pl Catalogo" ​      # Acao executada antes da operacao
 +        Write Bootstrap = "/​var/​lib/​bacula/​%c.bsr" ​                                # Arquivo gerado pelo Bacula para armazenar informacoes de backups feitos em seus clientes.
 +        Priority = 11                                                              # Executar depois do Backup - ajustar prioridade
 +}
 +
 +# JOB DE RESTAURACAO - (RESTORE) - SO E PRECISO ESSE JOBS PARA RESTAURACAO DE BACKUP #
 +Job {
 +        Name = "​RestoreFiles" ​                                                # Nome do Job Para Restore
 +        Type = Restore ​                                                       # Tipo de Job (Backup, Restore, Verificacao)
 +        Client = bacula-fd ​                                                   # Nome do Cliente FD
 +        FileSet = "Full Set" ​                                                 # File Set Definido para Esse Job
 +        Storage = File                                                        # Agendamento Definido para Esse Job
 +        Pool = File                                                           # Define a Pool
 +        Messages = Standard ​                                                  # Nivel de mensagens
 +        Where = /​tmp/​bacula-restores ​                                         # Diretorio onde o bacula ira restaurar os arquivos nos clientes
 +}
 +
 +#######################################################################​
 +## AQUI VAMOS DEFINIR OS CLIENTES E JOBS PARA CADA CLIENTE ADICIONADO #
 +#######################################################################​
 +
 +## ------------------------------------------------------------------- ##
 +# JOB DE BACKUP PARA O DIRECTOR DO BACULA
 +# HOSTNAME: bacula.douglasqsantos.com.br
 +# IP: 192.168.0.80
 +
 +Job {
 +        Name = "​BackupDirector" ​                          # Nome do Job para Backup do Director (Proprio Servidor Bacula)
 +        JobDefs = "​DefaultJobs" ​                          # JObDefs Definido
 +        Client = bacula-fd ​                               # Cliente fd
 +}
 +
 +Client {
 +  Name = bacula-fd ​                                       # Cliente fd
 +  Address = bacula.douglasqsantos.com.br ​                           # Ajustado no /etc/hosts
 +  Password = "​ExgYbEinJWMf7lsWPBcpffZaNMmiGcbgp" ​         # Senha do Director do Bacula
 +  @/​etc/​bacula/​clientes/​basic-client ​ # Arquivo onde contem informacoes sobre o cliente.
 +}
 +## -------------------------------------------------------------------- ##
 +</​sxh>​
 +
 +Agora vamos criar o arquivo que define o que vamos copiar dos clientes
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-filesets.conf
 +###################################################​
 +## ARQUIVO DE CONFIGURACAO PARA CLIENTES E JOBS  ##
 +###################################################​
 +
 +# LISTA DOS ARQUIVOS QUE SERAO COPIADOS
 +
 +FileSet {
 +        Name = "Full Set" ​                                      # Nome do FileSets
 +# Arquivos que serao incluidos para serem copiados ao backup
 +        Include {
 +                Options {
 +                        signature = SHA1
 +                        compression = GZIP
 +                        verify = pin1
 +                        onefs = no
 +                }
 +                File = /etc
 +                File = /root
 +                File = /var/log
 +                File = /var/www
 +                File = /home
 +                File = /usr/sbin
 +                File = /​etc/​bacula/​
 +                }
 +# Arquivos que serao ignorados ao backup
 +        Exclude {
 +                File = /​var/​lib/​bacula
 +                File = /proc
 +                File = /tmp
 +                File = /.journal
 +                File = /.fsck
 +                }
 +}
 +
 +# LISTA DOS ARQUIVOS QUE SERAO COPIADOS - CATALOGO #
 +
 +FileSet {
 +        Name = "​Catalogo"​
 +# Arquivos que serao incluidos para serem copiados ao backup
 +        Include {
 +                Options {
 +                        signature = SHA1
 +                }
 +                File = "/​var/​lib/​bacula/​bacula.sql"​
 +                }
 +}
 +
 +# LISTA DOS ARQUIVOS QUE SERAO COPIADOS - SISTEMA WINDOWS SERVER #
 +
 +FileSet {
 +        Name = "​WindowsFS"​
 +        #Habilita o Volume shadow copy service
 +        Enable VSS = yes
 +# Arquivos que serao incluidos para serem copiados ao backup
 +        Include {
 +#               ​Plugin = "​alldrivers"​
 +                        Options {
 +                                signature = SHA1
 +                                Compression = GZIP
 +                                OneFS = no
 +                                }
 +                        File = "​C:/"​
 +                        File = "​F:/"​
 +                }
 +}
 +</​sxh>​
 +
 +Agora vamos configurar o bacula como cliente tambem
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-fd.conf
 +##############################################################​
 +# ARQUIVO DE CONFIGURACAO DO FILE DAEMON DO BACULA ​          #
 +##############################################################​
 +
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir ​                                 # Nome do Director
 +  Password = "​ExgYbEinJWMf7lsWPBcpffZaNMmiGcbgp" ​    # ESTA SENHA ESTA DEFINIDA NO ARQUIVO DE CLIENTE EM /​ETC/​BACULA/​BACULA-DIR-CLIENTS-AND-JOBS.CONF
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   ​status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon
 +  Password = "​z27BNYXA9dx1SZWk1vp-kSZ8azwz2HMS8" ​   # ESTA SENHA E UTILIZADO PELO BACULA-MONITOR
 +  Monitor = yes
 +}
 +
 +#
 +# "​Global"​ File daemon configuration specifications
 +#
 +FileDaemon {
 +  Name = bacula-fd ​                                 # Nome do Bacula-fd
 +  FDport = 9102                                     # Porta de Comunicacao do bacula-fd
 +  WorkingDirectory = /​var/​lib/​bacula ​               # Diretorio de trabalho
 +  Pid Directory = /​var/​run/​bacula ​                  # Diretorio de Pid
 +  Maximum Concurrent Jobs = 20                      # Numero maximo de jobs executados no bacula
 +  FDAddress = 0.0.0.0 ​                    # COMENTAR OU REMOVER ESSA LINHA PARA QUE ELE POSSA '​OUVIR'​ CONEXOES EM TODAS AS INTERFACES
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored ​       # AS MENSAGEM SAO ENCAMINHADAS PARA O '​BACULA-DIR'​ DEFINIDO NESSA LINHA
 +}
 +</​sxh>​
 +
 +Agora vamos ajustar o arquivo de controle do armazenamento do backup
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-sd.conf
 +##############################################################​
 +# ARQUIVO PADRAO DE CONFIGURACAO DE STORAGE DO BACULA ​     #
 +##############################################################​
 +
 +Storage {
 +  Name = bacula-sd ​                               # Nome do Storage
 +  SDPort = 9103                                   # Porta do Director
 +  WorkingDirectory = "/​var/​lib/​bacula" ​           # Diretorio de Trabalho
 +  Pid Directory = "/​var/​run/​bacula" ​              # Pid do Bacula
 +  Maximum Concurrent Jobs = 20                    # Maximo de Backups em Execucao
 +  SDAddress = 0.0.0.0 ​                  # Comentar ou remover essa Linha para nao fazer loopback
 +}
 +
 +#
 +# List Directors who are permitted to contact Storage daemon
 +#
 +Director {
 +  Name = bacula-dir
 +  Password = "​LE_T_-c_55qu1f777Dm52map-s3xpgR4q"​
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   ​status of the storage daemon
 +# Usado pelo tray-monitor do bacula para obter status do servidor
 +Director {
 +  Name = bacula-mon
 +  Password = "​kNuOgEZUq2pqP6hRqPHMHm7UyxCOG1LBf"​
 +  Monitor = yes
 +}
 +
 +
 +# ABAIXO DEFINIMOS O NOME, TIPO, E O DIRETÓRIO DE ARQUIVOS DO BACULA
 +
 +Device {
 +  Name = FileStorage ​                     # Nome do Device
 +  Media Type = File                       # Tipo de Midia (DVD, CD, HD, FITA)
 +  Archive Device = /​srv/​backup ​           # Diretorio onde serao salvos os volumes de backup
 +  LabelMedia = yes;                       # Midias de Etiquetamento do Bacula
 +  Random Access = Yes;                    #
 +  AutomaticMount = yes;                   # Montar Automaticamente
 +  RemovableMedia = no;                    # Midia Removivel
 +  AlwaysOpen = no;                        # Manter Sempre Aberto
 +}
 +
 +#
 +# Send all messages to the Director,
 +# mount messages also are sent to the email address
 +#
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all
 +}
 +</​sxh>​
 +
 +Agora vamos ajustar o arquivo do bconsole que é como vamos conectar no bacula para fazer backup pela linha de comando
 +<sxh bash>
 +vim /​etc/​bacula/​bconsole.conf
 +#
 +# Bacula User Agent (or Console) Configuration File
 +#
 +
 +Director {
 +  Name = bacula-dir
 +  DIRport = 9101
 +  address = bacula
 +  Password = "​Cv70F6pf1t6pBopT4vQOnigDrR0v3L"​
 +}
 +</​sxh>​
 +
 +Agora vamos criar o diretório para armazenar os clientes
 +<sxh bash>
 +mkdir -p /​etc/​bacula/​clientes
 +</​sxh>​
 +
 +Agora vamos criar o arquivo de controle básico para os clientes
 +<sxh bash>
 +vim /​etc/​bacula/​clientes/​basic-client
 +##########################################################​
 +## ARQUIVO PARA CONFIGURACAO DE CLIENTE LINUX NO BACULA ##
 +##########################################################​
 +        Catalog = Catalogo ​       # Nome do Catalogo definido
 +        File Retention = 30 days                        # Tempo de Retencao do Backup
 +        Job Retention = 6 months ​                       # Tempo de Retencao do Job
 +        AutoPrune = yes                                 # Prune de Jobs/​Arquivos Expirados
 +</​sxh>​
 +
 +Agora vamos criar o diretório para armazenar os backups
 +<sxh bash>
 +mkdir -p /srv/backup
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões
 +<sxh bash>
 +chown bacula:tape /srv/backup
 +chown -R bacula:​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos reiniciar os serviços do bacula
 +<sxh bash>
 +/​etc/​init.d/​bacula-dir restart
 +/​etc/​init.d/​bacula-sd restart
 +/​etc/​init.d/​bacula-fd restart
 +</​sxh>​
 +
 +Agora vamos ver se o bacula está escutando ​
 +<sxh bash>
 +netstat -natu | egrep 910*
 +tcp        0      0 0.0.0.0:​9101 ​           0.0.0.0:​* ​              ​OUÇA ​     ​
 +tcp        0      0 0.0.0.0:​9102 ​           0.0.0.0:​* ​              ​OUÇA ​     ​
 +tcp        0      0 0.0.0.0:​9103 ​           0.0.0.0:​* ​              ​OUÇA ​
 +</​sxh>​
 +
 +Agora vamos testar o bacula, vamos verificar se ele está respondendo e se ele está reconhecendo o ele como cliente
 +
 +Vamos se conectar no bconsole
 +<sxh bash>
 +bconsole
 +Connecting to Director bacula:9101
 +1000 OK: bacula-dir Version: 5.2.13 (19 February 2013)
 +Enter a period to cancel a command.
 +*
 +</​sxh>​
 +
 +Ele está respondendo,​ agora vamos testar o cliente bacula ainda no bconsole
 +<sxh bash>
 +*status client=bacula-fd ​
 +Connecting to Client bacula-fd at bacula.douglasqsantos.com.br:​9102
 +
 +bacula-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 7.9
 +Daemon started 12-Abr-13 13:23. Jobs: run=0 running=0.
 + Heap: heap=270,​336 smbytes=23,​497 max_bytes=23,​644 bufs=53 max_bufs=54
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=0 ​
 +Running Jobs:
 +Director connected at: 12-Abr-13 13:25
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 +====
 +*
 +</​sxh>​
 +
 +O nosso bacula está sendo reconhecido como cliente.
 +
 +Vamos efetuar um backup do catalogo que é o banco de dados de controle do bacula
 +<sxh bash>
 +*run
 +Automatically selected Catalog: Catalogo
 +Using Catalog "​Catalogo"​
 +A job name must be specified.
 +The defined Job resources are:
 +     1: BackupCatalogo
 +     2: RestoreFiles
 +     3: BackupDirector
 +Select Job resource (1-3): 1
 +Run Backup job
 +JobName: ​ BackupCatalogo
 +Level: ​   Full
 +Client: ​  ​bacula-fd
 +FileSet: ​ Catalogo
 +Pool:     File (From Job resource)
 +Storage: ​ File (From Job resource)
 +When:     ​2014-04-12 13:27:02
 +Priority: 11
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=1
 +</​sxh>​
 +
 +Aqui o primeiro comando é run que chama a execução do backup, depois precisamos selecionar a opção como eu quero backup do catalogo tive que escolher a opção 1 e por fim precisei confirmar com um yes.
 +
 +Agora vamos consultar o job de backup ainda no bconsole
 +<sxh bash>
 +list jobs
 ++-------+----------------+---------------------+------+-------+----------+----------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+----------+-----------+
 +|     1 | BackupCatalogo | 2014-04-12 13:27:05 | B    | F     ​| ​       1 |   ​43,​545 | T         |
 ++-------+----------------+---------------------+------+-------+----------+----------+-----------+
 +</​sxh>​
 +
 +Agora se eu consultar o status do cliente novamente no bconsole vamos ter a seguinte mensagem
 +<sxh bash>
 +status client=bacula-fd ​
 +Connecting to Client bacula-fd at bacula.douglasqsantos.com.br:​9102
 +
 +bacula-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 7.9
 +Daemon started 12-Abr-13 13:23. Jobs: run=1 running=0.
 + Heap: heap=675,​840 smbytes=99,​492 max_bytes=169,​308 bufs=60 max_bufs=79
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=0 ​
 +Running Jobs:
 +Director connected at: 12-Abr-13 13:28
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 + ​JobId ​ Level    Files      Bytes   ​Status ​  ​Finished ​       Name 
 +======================================================================
 +     ​1 ​ Full          1    43.54 K  OK       ​12-Abr-13 13:27 BackupCatalogo
 +</​sxh>​
 +
 +Como podemos notar temos um backup do tipo full efetuado as 13:27 com sucesso.
 +
 +Agora vamos fazer backup dos arquivos do servidor
 +<sxh bash>
 +*run 
 +A job name must be specified.
 +The defined Job resources are:
 +     1: BackupCatalogo
 +     2: RestoreFiles
 +     3: BackupDirector
 +Select Job resource (1-3): 3
 +Run Backup job
 +JobName: ​ BackupDirector
 +Level: ​   Incremental
 +Client: ​  ​bacula-fd
 +FileSet: ​ Full Set
 +Pool:     File (From Job resource)
 +Storage: ​ File (From Job resource)
 +When:     ​2014-04-12 13:29:50
 +Priority: 10
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=2
 +</​sxh>​
 +
 +Aqui o primeiro comando é run que chama a execução do backup, depois precisamos selecionar a opção como eu quero backup dos arquivos do servidor tive que escolher a opção 3 e por fim precisei confirmar com um yes.
 +
 +Agora vamos consultar o job do nosso backup no bconsole
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes ​  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +|     1 | BackupCatalogo | 2014-04-12 13:27:05 | B    | F     ​| ​       1 |     ​43,​545 | T         |
 +|     2 | BackupDirector | 2014-04-12 13:29:53 | B    | F     ​| ​   1,889 | 22,790,302 | T         |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +</​sxh>​
 +
 +Como pode ser notado temos o backup ok to tipo full com um total de 1.889 arquivos, agora vamos consultar o status do nosso cliente no bconsole
 +<sxh bash>
 +status client=bacula-fd ​
 +Connecting to Client bacula-fd at bacula.douglasqsantos.com.br:​9102
 +
 +bacula-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 7.9
 +Daemon started 12-Abr-13 13:23. Jobs: run=2 running=0.
 + Heap: heap=819,​200 smbytes=101,​017 max_bytes=186,​312 bufs=65 max_bufs=118
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=0 ​
 +Running Jobs:
 +Director connected at: 12-Abr-13 13:31
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 + ​JobId ​ Level    Files      Bytes   ​Status ​  ​Finished ​       Name 
 +======================================================================
 +     ​1 ​ Full          1    43.54 K  OK       ​12-Abr-13 13:27 BackupCatalogo
 +     ​2 ​ Full      1,889    22.79 M  OK       ​12-Abr-13 13:29 BackupDirector
 +</​sxh>​
 +
 +Temos agora as informações que o backup ocorreu com sucesso :D.
 +
 +Agora se eu precisar restaurar por exemplo o /​etc/​network do backup podemos fazer da seguinte forma no bconsole
 +<sxh bash>
 +*restore
 +
 +First you select one or more JobIds that contain files
 +to be restored. You will be presented several methods
 +of specifying the JobIds. Then you will be allowed to
 +select which files from those JobIds are to be restored.
 +
 +To select the JobIds, you have the following choices:
 +     1: List last 20 Jobs run
 +     2: List Jobs where a given File is saved
 +     3: Enter list of comma separated JobIds to select
 +     4: Enter SQL list command
 +     5: Select the most recent backup for a client
 +     6: Select backup for a client before a specified time
 +     7: Enter a list of files to restore
 +     8: Enter a list of files to restore before a specified time
 +     9: Find the JobIds of the most recent backup for a client
 +    10: Find the JobIds for a backup for a client before a specified time
 +    11: Enter a list of directories to restore for found JobIds
 +    12: Select full restore to a specified Job date
 +    13: Cancel
 +Select item:  (1-13): 5
 +Automatically selected Client: bacula-fd
 +The defined FileSet resources are:
 +     1: Catalogo
 +     2: Full Set
 +Select FileSet resource (1-2): 2
 ++-------+-------+----------+------------+---------------------+------------+
 +| jobid | level | jobfiles | jobbytes ​  | starttime ​          | volumename |
 ++-------+-------+----------+------------+---------------------+------------+
 +|     2 | F     ​| ​   1,889 | 22,790,302 | 2014-04-12 13:29:53 | volume0001 |
 ++-------+-------+----------+------------+---------------------+------------+
 +You have selected the following JobId: 2
 +
 +Building directory tree for JobId(s) 2 ...  +++++++++++++++++++++++++++++++++++++++++++++
 +1,711 files inserted into the tree.
 +
 +You are now entering file selection mode where you add (mark) and
 +remove (unmark) files to be restored. No files are initially added, unless
 +you used the "​all"​ keyword on the command line.
 +Enter "​done"​ to leave this mode.
 +
 +cwd is: /
 +$ ls
 +etc/
 +home/
 +root/
 +usr/
 +var/
 +$ cd etc/ 
 +cwd is: /etc/
 +$ ls
 +.pwd.lock
 +Muttrc
 +Muttrc.d/
 +X11/
 +acpi/
 +adduser.conf
 +[...]
 +modules
 +motd
 +motd.tail
 +mtab
 +nanorc
 +network/
 +networks
 +nsswitch.conf
 +[...]
 +vim/
 +w3m/
 +wgetrc
 +xml/
 +zsh/
 +$ mark network
 +13 files marked.
 +$ done
 +Bootstrap records written to /​var/​lib/​bacula/​bacula-dir.restore.1.bsr
 +
 +The job will require the following
 +   ​Volume(s) ​                ​Storage(s) ​               SD Device(s)
 +===========================================================================
 +   
 +    volume0001 ​               File                      FileStorage ​             ​
 +
 +Volumes marked with "​*"​ are online.
 +
 +
 +14 files selected to be restored.
 +
 +Run Restore job
 +JobName: ​        ​RestoreFiles
 +Bootstrap: ​      /​var/​lib/​bacula/​bacula-dir.restore.1.bsr
 +Where: ​          /​tmp/​bacula-restores
 +Replace: ​        ​always
 +FileSet: ​        Full Set
 +Backup Client: ​  ​bacula-fd
 +Restore Client: ​ bacula-fd
 +Storage: ​        File
 +When:            2014-04-12 13:33:41
 +Catalog: ​        ​Catalogo
 +Priority: ​       10
 +Plugin Options: ​ *None*
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=3
 +</​sxh>​
 +
 +Aqui o procedimento é o seguinte:
 +  * restore para chamar o processo de restore
 +  * 5 para selecionar o backup mais recente do cliente
 +  * 2 por exemplo para restaurar o backup dos arquivos
 +  * Depois podemos digitar um ls para listar os nosso arquivos
 +  * Depois um cd caso precise selecionar um diretório
 +  * Depois podemos marcar o que queremos restaurar com o comando mark
 +  * Depois precisamos digitar done para informar ao bacula que já selecionamos o que precisamos
 +  * E por fim precisamos informar yes para confirmar o restore
 +
 +Agora vamos listar os jobs no bconsole
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes ​  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +|     1 | BackupCatalogo | 2014-04-12 13:27:05 | B    | F     ​| ​       1 |     ​43,​545 | T         |
 +|     2 | BackupDirector | 2014-04-12 13:29:53 | B    | F     ​| ​   1,889 | 22,790,302 | T         |
 +|     3 | RestoreFiles ​  | 2014-04-12 13:33:45 | R    | F     ​| ​      14 |      8,975 | T         |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +</​sxh>​
 +
 +Pelas informações restauramos 14 arquivos com sucesso.
 +
 +Agora vamos consultar o status do nosso cliente
 +<sxh bash>
 +*status client=bacula-fd ​
 +Connecting to Client bacula-fd at bacula.douglasqsantos.com.br:​9102
 +
 +bacula-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 7.9
 +Daemon started 12-Abr-13 13:23. Jobs: run=3 running=0.
 + Heap: heap=819,​200 smbytes=101,​258 max_bytes=186,​312 bufs=66 max_bufs=118
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=0 ​
 +Running Jobs:
 +Director connected at: 12-Abr-13 13:38
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 + ​JobId ​ Level    Files      Bytes   ​Status ​  ​Finished ​       Name 
 +======================================================================
 +     ​1 ​ Full          1    43.54 K  OK       ​12-Abr-13 13:27 BackupCatalogo
 +     ​2 ​ Full      1,889    22.79 M  OK       ​12-Abr-13 13:29 BackupDirector
 +     ​3 ​              ​14 ​   8.975 K  OK       ​12-Abr-13 13:33 RestoreFiles
 +</​sxh>​
 +
 +Como podemos notar agora temos a informação que temos todas as opções até o momento ok.
 +
 +Como mandamos restaurar o bacula mandou para o caminho default que seria /​tmp/​bacula-restore vamos listar esse diretório
 +<sxh bash>
 +ls -lR /​tmp/​bacula-restores
 +/​tmp/​bacula-restores:​
 +total 1
 +drwxr-xr-x 3 root root 1024 Abr 12 13:25 etc/
 +
 +/​tmp/​bacula-restores/​etc:​
 +total 1
 +drwxr-xr-x 7 root root 1024 Abr 11 10:33 network/
 +
 +/​tmp/​bacula-restores/​etc/​network:​
 +total 6
 +drwxr-xr-x 2 root root 1024 Abr 11 11:00 if-down.d/
 +drwxr-xr-x 2 root root 1024 Mar  3  2010 if-post-down.d/​
 +drwxr-xr-x 2 root root 1024 Mar  3  2010 if-pre-up.d/​
 +drwxr-xr-x 2 root root 1024 Abr 11 11:01 if-up.d/
 +-rw-r--r-- 1 root root  517 Abr 11 10:33 interfaces
 +drwxr-xr-x 2 root root 1024 Abr 12 11:56 run/
 +
 +/​tmp/​bacula-restores/​etc/​network/​if-down.d:​
 +total 1
 +-rwxr-xr-x 1 root root 803 Mai  4  2011 postfix*
 +
 +/​tmp/​bacula-restores/​etc/​network/​if-post-down.d:​
 +total 0
 +
 +/​tmp/​bacula-restores/​etc/​network/​if-pre-up.d:​
 +total 0
 +
 +/​tmp/​bacula-restores/​etc/​network/​if-up.d:​
 +total 10
 +-rwxr-xr-x 1 root root 4581 Mar 24  2012 mountnfs*
 +-rwxr-xr-x 1 root root 1089 Set 15  2008 ntpdate*
 +-rwxr-xr-x 1 root root  849 Dez 21  2009 openssh-server*
 +-rwxr-xr-x 1 root root 1120 Mai  4  2011 postfix*
 +
 +/​tmp/​bacula-restores/​etc/​network/​run:​
 +total 1
 +-rw-r--r-- 1 root root 16 Abr 12 11:56 ifstate
 +</​sxh>​
 +
 +Temos o nosso backup restaurado com sucesso :D
 +
 +====== Configuração do Cliente Windows 2008 R2 ======
 +
 +Agora vamos instalar um cliente Windows eu vou utilizar um Windows Server 2008 R2 Enterprise
 +
 +Podemos obter o cliente em http://​wiki.douglasqsantos.com.br/​Downloads/​bacula/​bacula-win64-5.2.10.exe
 +
 +Agora vamos instalar ele
 +  * Mande executar o bacula-win64-5.2.10.exe com direito administrativos
 +  * Agora selecione Next
 +  * Agora selecione I Agree
 +  * Agora selecione Automatic
 +  * Agora selecione Next
 +  * Agora vamos informar os dados do bacula-dir:
 +    * Em DIR Name informe: bacula-dir
 +    * Em DIR Password informe: Cv70F6pf1t6pBopT4vQOnigDrR0v3L que é a senha do bacula-dir
 +    * Em DIR Address informe: bacula.douglasqsantos.com.br
 +  * Agora selecione Install
 +  * Agora selecione Next
 +  * Agora selecione Finish
 +
 +Agora vamos ajustar o c:​\Windows\System32\Drivers\etc\hosts
 +
 +<sxh bash>
 +notepad c:​\Windows\System32\Drivers\etc\hosts
 +[...]
 +#No final do arquivo insira a seguinte linha
 +192.168.0.80 bacula.douglasqsantos.com.br
 +</​sxh> ​
 +
 +
 +Agora vamos deixar o backup-fd.conf da seguinte forma
 +<sxh bash>
 +notepad "​c:​\Windows\Arquivos de Programas\Bacula\bacula-fd.conf"​
 +# Default ​ Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.6 (02/21/12) -- Windows MinGW32
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name
 +#
 + 
 +#
 +# "​Global"​ File daemon configuration specifications
 +#
 +FileDaemon {                            ​
 +  Name = win2008-fd ​                                                       # Nome do cliente-fd
 +  FDport = 9102                                                        # Porta de Comunicacao
 +  WorkingDirectory = "​C:​\\Program Files\\Bacula\\working" ​             # Diretorio de Trabalho
 +  Pid Directory = "​C:​\\Program Files\\Bacula\\working" ​                # Diretorio de PID
 +# Plugin Directory = "​C:​\\Program Files\\Bacula\\plugins" ​             # Diretorio de Plugins
 +  Maximum Concurrent Jobs = 10                                         # Numero Maximo de Jobs em execucao
 +}
 + 
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir ​        # ALTERAR PARA O NOME DO '​DIRECTOR'​ DO BACULA
 +  Password = "​a0wDKVckyaTacqItfkCxddJxyBLwAXFn7" ​ # SENHA PARA COMUNICACAO COM ARQUIVO CLIENTS-AND-JOBS.CONF
 +}
 + 
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   ​status of the file daemon
 +# UTILIZADO PELO BACULA MONITOR
 +Director {
 +  Name = bacula-mon
 +  Password = "​yQevDJfJg7fBgp8PfOxWTKqTqhUUTvAMn"​
 +  Monitor = yes
 +}
 + 
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</​sxh>​
 +
 +Agora para podermos efetuar backup do c: do Windows precisamos importar a seguinte chave do resgistro
 +<sxh bash>
 +notepad bacula.reg
 +Windows Registry Editor Version 5.00
 +
 +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wbengine]
 +
 +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wbengine\SystemStateBackup]
 +"​ALlowSSBToAny"​=dword:​00000001
 +</​sxh>​
 +
 +Agora precisamos mandar iniciar o serviço do bacula e o serviço ​ Detecção de Serviços Interativos (Interactive Services Detection)
 +
 +Agora para o bacula conseguir chegar no cliente precisamos liberar a porta 9102 no servidor Windows(Liberar a porta 9102 no Firewall).
 +
 +Agora no servidor bacula vamos criar um novo cliente
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +[...]
 +#Inserir no final do arquivo
 +Job {
 +        Name = "​BackupWin2008" ​                          # Nome do Job para Backup do Director (Proprio Servidor Bacula)
 +        JobDefs = "​DefaultWindows" ​                          # JObDefs Definido
 +        Client = win2008-fd ​                               # Cliente fd
 +}
 +
 +Client {
 +  Name = win2008-fd ​                                       # Cliente fd
 +  Address = win2008.douglasqsantos.com.br ​                           # Ajustado no /etc/hosts
 +  Password = "​a0wDKVckyaTacqItfkCxddJxyBLwAXFn7" ​         # Senha do Director do Bacula que foi definida no cliente
 +  @/​etc/​bacula/​clientes/​basic-client ​ # Arquivo onde contem informacoes sobre o cliente.
 +}
 +</​sxh>​
 +
 +Aqui nos definimos o job de backup do windows e depois a sua configuração.
 +
 +Agora vamos inserir no /etc/hosts a entrada para o win2008
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​localhost
 +192.168.0.80 ​   bacula.douglasqsantos.com.br ​     bacula
 +192.168.0.92 ​   win2008.douglasqsantos.com.br ​    ​win2008
 +[...]
 +</​sxh>​
 +
 +Agora vamos mandar reiniciar o serviço do bacula
 +<sxh bash>
 +/​etc/​init.d/​bacula-dir restart
 +/​etc/​init.d/​bacula-sd restart
 +/​etc/​init.d/​bacula-fd restart
 +</​sxh>​
 +
 +Agora vamos chamar o bconsole para testarmos a conexão com o cliente
 +<sxh bash>
 +bconsole
 +Connecting to Director bacula:9101
 +1000 OK: bacula-dir Version: 5.2.13 (19 February 2013)
 +Enter a period to cancel a command.
 +*status client=win2008-fd ​
 +Connecting to Client win2008-fd at win2008.douglasqsantos.com.br:​9102
 +
 +win2008-fd Version: 5.2.10 (28 June 2012)  VSS Linux Cross-compile Win64
 +Daemon started 12-Apr-13 15:19. Jobs: run=0 running=0.
 +Microsoft Windows Server 2008 R2 Enterprise Edition Service Pack 1 (build 7601), 64-bit
 + Heap: heap=0 smbytes=16,​962 max_bytes=17,​109 bufs=53 max_bufs=54
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=1 ​
 +Running Jobs:
 +Director connected at: 12-Apr-13 15:23
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 +====
 +*
 +</​sxh>​
 +
 +Como pode ser notado estamos chegando no cliente com sucesso.
 +
 +Agora vamos mandar efetuar um backup do cliente
 +<sxh bash>
 +*run
 +Automatically selected Catalog: Catalogo
 +Using Catalog "​Catalogo"​
 +A job name must be specified.
 +The defined Job resources are:
 +     1: BackupCatalogo
 +     2: RestoreFiles
 +     3: BackupDirector
 +     4: BackupWin2008
 +Select Job resource (1-4): 4
 +Run Backup job
 +JobName: ​ BackupWin2008
 +Level: ​   Incremental
 +Client: ​  ​win2008-fd
 +FileSet: ​ WindowsFS
 +Pool:     File (From Job resource)
 +Storage: ​ File (From Job resource)
 +When:     ​2014-04-12 15:29:11
 +Priority: 10
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=3
 +*
 +</​sxh>​
 +
 +
 +A mesma história, run para rodar o backup, depois selecionamos a opção de backup no caso 4 para o win2008 e depois um yes para confirmar.
 +
 +As vezes podemos ter uma mensagem, podemos visualizar ela da seguinte forma no bconsole
 +<sxh bash>
 +*mes
 +12-Abr 14:15 bacula-dir JobId 5: No prior Full backup Job record found.
 +12-Abr 14:15 bacula-dir JobId 5: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +12-Abr 14:15 bacula-dir JobId 5: Start Backup JobId 5, Job=BackupWin2012.2014-04-12_14.15.10_03
 +12-Abr 14:15 bacula-dir JobId 5: Using Device "​FileStorage"​ to write.
 +12-Abr 14:15 bacula-sd JobId 5: Volume "​volume0001"​ previously written, moving to end of data.
 +12-Abr 14:15 bacula-sd JobId 5: Ready to append to end of Volume "​volume0001"​ size=23120574
 +12-Abr 14:15 Win2012-fd JobId 5: Generate VSS snapshots. Driver="​Win64 VSS", Drive(s)="​CF"​
 +</​sxh>​
 +
 +Agora vamos consultar os jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes ​ | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2014-04-12 15:13:50 | B    | F     ​| ​       1 |    43,545 | T         |
 +|     2 | BackupDirector | 2014-04-12 15:14:03 | B    | F     ​| ​   1,891 | 8,068,884 | T         |
 +|     3 | BackupWin2008 ​ | 2014-04-12 15:29:26 | B    | F     ​| ​       0 |         0 | R         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +*
 +</​sxh>​
 +
 +Ainda está executando, agora vamos verificar o status do cliente windows 2008
 +<sxh bash>
 +*status client=win2008-fd ​
 +Connecting to Client win2008-fd at win2008.douglasqsantos.com.br:​9102
 +
 +win2008-fd Version: 5.2.10 (28 June 2012)  VSS Linux Cross-compile Win64
 +Daemon started 12-Apr-13 15:19. Jobs: run=0 running=0.
 +Microsoft Windows Server 2008 R2 Enterprise Edition Service Pack 1 (build 7601), 64-bit
 + Heap: heap=0 smbytes=195,​578 max_bytes=212,​575 bufs=136 max_bufs=158
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=1 ​
 +Running Jobs:
 +JobId 3 Job BackupWin2008.2014-04-12_15.29.13_03 is running.
 +    VSS Full Backup Job started: 12-Apr-13 15:28
 +    Files=721 Bytes=111,​094,​103 Bytes/​sec=2,​267,​226 Errors=0
 +    Files Examined=721
 +    Processing file: C:/​Recovery/​4446b7b6-a39a-11e2-90f5-f46d8e8454b4/​Winre.wim
 +    SDReadSeqNo=5 fd=700
 +Director connected at: 12-Apr-13 15:29
 +====
 +
 +Terminated Jobs:
 +====
 +*
 +</​sxh>​
 +
 +Como podemos ver em Processing file: é o que o bacula está copiando no momento, aqui temos que esperar ele terminar o backup.
 +
 +
 +
 +====== Configuração do cliente Windows 2012 ======
 +
 +
 +Agora vamos instalar um cliente Windows eu vou utilizar um Windows Server 2012 Stardard
 +
 +Podemos obter o cliente em http://​wiki.douglasqsantos.com.br/​Downloads/​bacula/​bacula-win64-5.2.10.exe
 +
 +Agora vamos instalar ele
 +  * Mande executar o bacula-win64-5.2.10.exe com direito administrativos
 +  * Agora selecione Next
 +  * Agora selecione I Agree
 +  * Agora selecione Automatic
 +  * Agora selecione Next
 +  * Agora vamos informar os dados do bacula-dir:
 +    * Em DIR Name informe: bacula-dir
 +    * Em DIR Password informe: Cv70F6pf1t6pBopT4vQOnigDrR0v3L que é a senha do bacula-dir
 +    * Em DIR Address informe: bacula.douglasqsantos.com.br
 +  * Agora selecione Install
 +  * Agora selecione Next
 +  * Agora selecione Finish
 +
 +Agora vamos ajustar o c:​\Windows\System32\Drivers\etc\hosts
 +
 +<sxh bash>
 +notepad c:​\Windows\System32\Drivers\etc\hosts
 +[...]
 +#No final do arquivo insira a seguinte linha
 +192.168.0.80 bacula.douglasqsantos.com.br
 +</​sxh> ​
 +
 +
 +Agora vamos deixar o backup-fd.conf da seguinte forma
 +<sxh bash>
 +notepad "​c:​\Windows\Arquivos de Programas\Bacula\bacula-fd.conf"​
 +# Default ​ Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.6 (02/21/12) -- Windows MinGW32
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name
 +#
 + 
 +#
 +# "​Global"​ File daemon configuration specifications
 +#
 +FileDaemon {                            ​
 +  Name = Win2012-fd ​                                                       # Nome do cliente-fd
 +  FDport = 9102                                                        # Porta de Comunicacao
 +  WorkingDirectory = "​C:​\\Program Files\\Bacula\\working" ​             # Diretorio de Trabalho
 +  Pid Directory = "​C:​\\Program Files\\Bacula\\working" ​                # Diretorio de PID
 +# Plugin Directory = "​C:​\\Program Files\\Bacula\\plugins" ​             # Diretorio de Plugins
 +  Maximum Concurrent Jobs = 10                                         # Numero Maximo de Jobs em execucao
 +}
 + 
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir ​        # ALTERAR PARA O NOME DO '​DIRECTOR'​ DO BACULA
 +  Password = "​a0wDKVckyaTacqItfkCxddJxyBLwAXFn7" ​ # SENHA PARA COMUNICACAO COM ARQUIVO CLIENTS-AND-JOBS.CONF
 +}
 + 
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   ​status of the file daemon
 +# UTILIZADO PELO BACULA MONITOR
 +Director {
 +  Name = bacula-mon
 +  Password = "​yQevDJfJg7fBgp8PfOxWTKqTqhUUTvAMn"​
 +  Monitor = yes
 +}
 + 
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</​sxh>​
 +
 +Agora para podermos efetuar backup do c: do Windows precisamos importar a seguinte chave do resgistro
 +<sxh bash>
 +notepad bacula.reg
 +Windows Registry Editor Version 5.00
 +
 +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wbengine]
 +
 +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wbengine\SystemStateBackup]
 +"​ALlowSSBToAny"​=dword:​00000001
 +</​sxh>​
 +
 +Como estamos utilizando o Windows 2012 como cliente precisamos habilitar a descoberta de serviços interativos no registro do Windows:
 +    * HKEY_LOCAL_MACHINE\SYSTEM\<​nowiki>​CurrentControlSet\Control\Windows\NoInteractiveServices</​nowiki>​
 +
 +Precisamos mudar essa chave para o valor 0.
 +
 +Agora precisamos mandar iniciar o serviço do bacula e o serviço ​ Detecção de Serviços Interativos.
 +
 +Agora para o bacula conseguir chegar no cliente precisamos liberar a porta 9102 no servidor Windows.
 +
 +Agora no servidor bacula vamos criar um novo cliente
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +[...]
 +#Inserir no final do arquivo
 +Job {
 +        Name = "​BackupWin2012" ​                          # Nome do Job para Backup do Director (Proprio Servidor Bacula)
 +        JobDefs = "​DefaultWindows" ​                          # JObDefs Definido
 +        Client = win2012-fd ​                               # Cliente fd
 +}
 +
 +Client {
 +  Name = win2012-fd ​                                       # Cliente fd
 +  Address = win2012.douglasqsantos.com.br ​                           # Ajustado no /etc/hosts
 +  Password = "​a0wDKVckyaTacqItfkCxddJxyBLwAXFn7" ​         # Senha do Director do Bacula que foi definida no cliente
 +  @/​etc/​bacula/​clientes/​basic-client ​ # Arquivo onde contem informacoes sobre o cliente.
 +}
 +</​sxh>​
 +
 +Aqui nos definimos o job de backup do windows e depois a sua configuração.
 +
 +Agora vamos inserir no /etc/hosts a entrada para o win2012
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​localhost
 +192.168.0.80 ​   bacula.douglasqsantos.com.br ​     bacula
 +192.168.0.85 ​   win2012.douglasqsantos.com.br ​    ​win2012
 +[...]
 +</​sxh>​
 +
 +Agora vamos pingar no win2012 para verificarmos a conectividade
 +<sxh bash>
 +ping win2012.douglasqsantos.com.br -c 2
 +PING win2012.douglasqsantos.com.br (192.168.0.85) 56(84) bytes of data.
 +64 bytes from win2012.douglasqsantos.com.br (192.168.0.85):​ icmp_req=1 ttl=128 time=0.438 ms
 +64 bytes from win2012.douglasqsantos.com.br (192.168.0.85):​ icmp_req=2 ttl=128 time=0.610 ms
 +
 +--- win2012.douglasqsantos.com.br ping statistics ---
 +2 packets transmitted,​ 2 received, 0% packet loss, time 999ms
 +rtt min/​avg/​max/​mdev = 0.438/​0.524/​0.610/​0.086 ms
 +</​sxh>​
 +
 +Agora vamos mandar reiniciar o serviço do bacula
 +<sxh bash>
 +/​etc/​init.d/​bacula-dir restart
 +/​etc/​init.d/​bacula-sd restart
 +/​etc/​init.d/​bacula-fd restart
 +</​sxh>​
 +
 +Agora vamos chamar o bconsole para testarmos a conexão com o cliente
 +<sxh bash>
 +bconsole
 +Connecting to Director bacula:9101
 +1000 OK: bacula-dir Version: 5.2.13 (19 February 2013)
 +Enter a period to cancel a command.
 +*status client=win2012-fd ​
 +Connecting to Client win2012-fd at win2012.douglasqsantos.com.br:​9102
 +
 +Win2012-fd Version: 5.2.10 (28 June 2012)  VSS Linux Cross-compile Win64
 +Daemon started 12-Apr-13 14:06. Jobs: run=0 running=0.
 +Microsoft Standard Edition (build 9200), 64-bit
 + Heap: heap=0 smbytes=18,​754 max_bytes=18,​901 bufs=53 max_bufs=54
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=1 ​
 +Running Jobs:
 +Director connected at: 12-Apr-13 14:08
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 +====
 +*
 +</​sxh>​
 +
 +Como pode ser notado estamos chegando no cliente com sucesso.
 +
 +Agora vamos mandar efetuar um backup do cliente
 +<sxh bash>
 +*run
 +Automatically selected Catalog: Catalogo
 +Using Catalog "​Catalogo"​
 +A job name must be specified.
 +The defined Job resources are:
 +     1: BackupCatalogo
 +     2: RestoreFiles
 +     3: BackupDirector
 +     4: BackupWin2012
 +Select Job resource (1-4): 4
 +Run Backup job
 +JobName: ​ BackupWin2012
 +Level: ​   Incremental
 +Client: ​  ​win2012-fd
 +FileSet: ​ WindowsFS
 +Pool:     File (From Job resource)
 +Storage: ​ File (From Job resource)
 +When:     ​2014-04-12 14:15:08
 +Priority: 10
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=5
 +You have messages.
 +</​sxh>​
 +
 +
 +A mesma história, run para rodar o backup, depois selecionamos a opção de backup no caso 4 para o win2012 e depois um yes para confirmar.
 +
 +Note que agora temos uma mensagem, podemos visualizar ela da seguinte forma no bconsole
 +<sxh bash>
 +*mes
 +12-Abr 14:15 bacula-dir JobId 5: No prior Full backup Job record found.
 +12-Abr 14:15 bacula-dir JobId 5: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +12-Abr 14:15 bacula-dir JobId 5: Start Backup JobId 5, Job=BackupWin2012.2014-04-12_14.15.10_03
 +12-Abr 14:15 bacula-dir JobId 5: Using Device "​FileStorage"​ to write.
 +12-Abr 14:15 bacula-sd JobId 5: Volume "​volume0001"​ previously written, moving to end of data.
 +12-Abr 14:15 bacula-sd JobId 5: Ready to append to end of Volume "​volume0001"​ size=23120574
 +12-Abr 14:15 Win2012-fd JobId 5: Generate VSS snapshots. Driver="​Win64 VSS", Drive(s)="​CF"​
 +</​sxh>​
 +
 +Agora vamos consultar os jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes ​  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +|     1 | BackupCatalogo | 2014-04-12 13:27:05 | B    | F     ​| ​       1 |     ​43,​545 | T         |
 +|     2 | BackupDirector | 2014-04-12 13:29:53 | B    | F     ​| ​   1,889 | 22,790,302 | T         |
 +|     3 | RestoreFiles ​  | 2014-04-12 13:33:45 | R    | F     ​| ​      14 |      8,975 | T         |
 +|     4 | BackupWin2012 ​ | 2014-04-12 14:15:22 | B    | F     ​| ​       0 |          0 | R         |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +*
 +</​sxh>​
 +
 +Ainda está executando, agora vamos verificar o status do cliente windows 2012
 +<sxh bash>
 +*status client=win2012-fd ​
 +Connecting to Client win2012-fd at win2012.douglasqsantos.com.br:​9102
 +
 +Win2012-fd Version: 5.2.10 (28 June 2012)  VSS Linux Cross-compile Win64
 +Daemon started 12-Apr-13 14:06. Jobs: run=1 running=0.
 +Microsoft Standard Edition (build 9200), 64-bit
 + Heap: heap=0 smbytes=183,​408 max_bytes=189,​680 bufs=120 max_bufs=127
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=1 ​
 +Running Jobs:
 +JobId 5 Job BackupWin2012.2014-04-12_14.15.10_03 is running.
 +    VSS Full Backup Job started: 12-Apr-13 14:15
 +    Files=132 Bytes=1,​690,​775,​038 Bytes/​sec=20,​370,​783 Errors=0
 +    Files Examined=132
 +    Processing file: C:/​pagefile.sys
 +    SDReadSeqNo=5 fd=1084
 +Director connected at: 12-Apr-13 14:16
 +====
 +
 +Terminated Jobs:
 + ​JobId ​ Level    Files      Bytes   ​Status ​  ​Finished ​       Name 
 +======================================================================
 +</​sxh>​
 +
 +Como podemos ver em Processing file: é o que o bacula está copiando no momento, aqui temos que esperar ele terminar o backup.
 +
 +====== Configuração de um Cliente Debian Squeeze/​Wheezy/​Jessie ======
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialwheezy_en para que não falte nenhum pacote ou configuração. ​
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialjessie_en para que não falte nenhum pacote ou configuração. ​
 +
 +
 +Vamos instalar os pré-requisitos para podermos compilar o bacula
 +<sxh bash>
 +aptitude install libreadline-dev libreadline6-dev libreadline6-dev libreadline6 libreadline6 \
 +libreadline6-dev zlib1g-dev libcurl4-openssl-dev build-essential libssl-dev -y
 +</​sxh>​
 +
 +Agora vamos criar os diretórios para o bacula
 +<sxh bash>
 +mkdir /​var/​lib/​bacula
 +mkdir /​var/​run/​bacula
 +mkdir /​var/​log/​bacula
 +mkdir -p /​etc/​bacula/​scripts
 +</​sxh>​
 +
 +Agora vamos criar o usuário bacula
 +<sxh bash>
 +useradd -s /bin/false -d /​var/​lib/​bacula ​ bacula
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos diretórios
 +<sxh bash>
 +chown -R bacula:​bacula /​var/​lib/​bacula /​var/​run/​bacula /​var/​log/​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos obter o pacote do bacula
 +<sxh bash>
 +cd /usr/src
 +wget -c http://​wiki.douglasqsantos.com.br/​Downloads/​bacula/​bacula-5.2.13.tar.gz
 +</​sxh>​
 +
 +Agora vamos desempacotar o bacula
 +<sxh bash>
 +tar -xzvf bacula-5.2.13.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar a pasta do bacula
 +<sxh bash>
 +cd bacula-5.2.13/​
 +</​sxh>​
 +
 +Agora vamos preparar o pacote do bacula
 +<sxh bash>
 +CFLAGS="​-g -Wall" ./configure --enable-client-only --enable-smartalloc --with-working-dir=/​var/​lib/​bacula --with-pid-dir=/​var/​run/​bacula \
 +--with-logdir=/​var/​log/​bacula ​ --with-scriptdir=/​etc/​bacula/​scripts --with-readline=/​usr/​include/​readline ​ --disable-conio
 +</​sxh>​
 +
 +Agora vamos mandar compilar o bacula
 +<sxh bash>
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar o bacula
 +<sxh bash>
 +make install
 +</​sxh>​
 +
 +Agora vamos mandar instalar os binários de inicialização do bacula
 +<sxh bash>
 +make install-autostart
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos arquivos
 +<sxh bash>
 +chown -R bacula:​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos ajustar o /etc/hosts do cliente
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​localhost
 +192.168.0.81 ​   debian.douglasqsantos.com.br ​     debian
 +192.168.0.80 ​   bacula.douglasqsantos.com.br ​     bacula
 +[...]
 +</​sxh>​
 +
 +Vamos remover dois scripts que não são necessários
 +<sxh bash>
 +rm -rf /​etc/​init.d/​bacula-sd
 +rm -rf /​etc/​init.d/​bacula-dir
 +</​sxh>​
 +
 +Agora vamos fazer o backup dos arquivos de configuração do bacula
 +<sxh bash>
 +mkdir /​usr/​src/​olds
 +cp -Rfa /etc/bacula /​usr/​src/​olds
 +</​sxh>​
 +
 +Agora vamos configurar o cliente
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-fd.conf
 +##############################################################​
 +# ARQUIVO DE CONFIGURACAO DO FILE DAEMON DO BACULA ​          #
 +##############################################################​
 +
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir ​                                 # Nome do Director
 +  Password = "​a5GGjJ4D7tRnm3C1TSLzU4glxdflLJ56OG77hjtT9zUF" ​    # ESTA SENHA ESTA DEFINIDA NO ARQUIVO DE CLIENTE EM /​ETC/​BACULA/​BACULA-DIR-CLIENTS-AND-JOBS.CONF
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   ​status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon
 +  Password = "​dBYlH/​Q+inv85CGu7TCHpYTW2EtpUwwqHuEmjoRgl/​l/" ​   # ESTA SENHA E UTILIZADO PELO BACULA-MONITOR
 +  Monitor = yes
 +}
 +
 +#
 +# "​Global"​ File daemon configuration specifications
 +#
 +FileDaemon {
 +  Name = debian-fd ​                                 # Nome do Bacula-fd
 +  FDport = 9102                                     # Porta de Comunicacao do bacula-fd
 +  WorkingDirectory = /​var/​lib/​bacula ​               # Diretorio de trabalho
 +  Pid Directory = /​var/​run/​bacula ​                  # Diretorio de Pid
 +  Maximum Concurrent Jobs = 20                      # Numero maximo de jobs executados no bacula
 +  FDAddress = 0.0.0.0 ​                    # COMENTAR OU REMOVER ESSA LINHA PARA QUE ELE POSSA '​OUVIR'​ CONEXOES EM TODAS AS INTERFACES
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored ​       # AS MENSAGEM SAO ENCAMINHADAS PARA O '​BACULA-DIR'​ DEFINIDO NESSA LINHA
 +}
 +</​sxh>​
 +
 +Agora vamos ajustar o arquivo do bconsole que é como vamos conectar no bacula para fazer backup pela linha de comando
 +<sxh bash>
 +vim /​etc/​bacula/​bconsole.conf
 +#
 +# Bacula User Agent (or Console) Configuration File
 +#
 +
 +Director {
 +  Name = bacula-dir
 +  DIRport = 9101
 +  address = bacula.douglasqsantos.com.br
 +  Password = "​Cv70F6pf1t6pBopT4vQOnigDrR0v3L"​
 +}
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do bacula-fd
 +<sxh bash>
 +/​etc/​init.d/​bacula-fd restart
 +</​sxh>​
 +
 +Agora vamos listar verificar se o bacula está escutando
 +<sxh bash>
 +netstat -natu | egrep 9102
 +tcp        0      0 0.0.0.0:​9102 ​           0.0.0.0:​* ​              ​OUÇA ​
 +</​sxh>​
 +
 +Agora no servidor bacula vamos ajustar a configuração do novo cliente
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +[...]
 +#Inserir no final do arquivo
 +Job {
 +        Name = "​BackupDebian" ​                          # Nome do Job para Backup do Director (Proprio Servidor Bacula)
 +        JobDefs = "​DefaultJobs" ​                          # JObDefs Definido
 +        Client = debian-fd ​                               # Cliente fd
 +}
 +
 +Client {
 +  Name = debian-fd ​                                       # Cliente fd
 +  Address = debian.douglasqsantos.com.br ​                           # Ajustado no /etc/hosts
 +  Password = "​a5GGjJ4D7tRnm3C1TSLzU4glxdflLJ56OG77hjtT9zUF" ​         # Senha do Director do Bacula
 +  @/​etc/​bacula/​clientes/​basic-client ​ # Arquivo onde contem informacoes sobre o cliente.
 +}
 +</​sxh>​
 +
 +Agora vamos ajustar o /etc/hosts
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​localhost
 +192.168.0.80 ​   bacula.douglasqsantos.com.br ​     bacula
 +192.168.0.92 ​   win2008.douglasqsantos.com.br ​    ​win2008
 +192.168.0.85 ​   win2012.douglasqsantos.com.br ​    ​win2012
 +192.168.0.81 ​   debian.douglasqsantos.com.br ​     debian
 +</​sxh>​
 +
 +Agora vamos reiniciar o bacula
 +<sxh bash>
 +/​etc/​init.d/​bacula-dir restart
 +/​etc/​init.d/​bacula-sd restart
 +/​etc/​init.d/​bacula-fd restart
 +</​sxh>​
 +
 +Agora vamos consultar o novo cliente no bconsole
 +<sxh bash>
 +bconsole
 +Connecting to Director bacula:9101
 +1000 OK: bacula-dir Version: 5.2.13 (19 February 2013)
 +Enter a period to cancel a command.
 +*status client=debian-fd ​
 +Connecting to Client debian-fd at debian.douglasqsantos.com.br:​9102
 +
 +debian-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 7.9
 +Daemon started 12-Abr-13 15:50. Jobs: run=0 running=0.
 + Heap: heap=135,​168 smbytes=21,​896 max_bytes=22,​043 bufs=52 max_bufs=53
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=0 ​
 +Running Jobs:
 +Director connected at: 12-Abr-13 15:51
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 +====
 +*
 +</​sxh>​
 +
 +
 +Vamos fazer um backup dele para teste
 +<sxh bash>
 +*run
 +Automatically selected Catalog: Catalogo
 +Using Catalog "​Catalogo"​
 +A job name must be specified.
 +The defined Job resources are:
 +     1: BackupCatalogo
 +     2: RestoreFiles
 +     3: BackupDirector
 +     4: BackupWin2008
 +     5: BackupDebian
 +Select Job resource (1-5): 5
 +Run Backup job
 +JobName: ​ BackupDebian
 +Level: ​   Incremental
 +Client: ​  ​debian-fd
 +FileSet: ​ Full Set
 +Pool:     File (From Job resource)
 +Storage: ​ File (From Job resource)
 +When:     ​2014-04-12 15:51:52
 +Priority: 10
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=4
 +</​sxh>​
 +
 +Mesma historia run para fazer o backup 5 para selecionar o meu cliente debian e yes para confirmar
 +
 +Agora vamos consultar os jobs do cliente
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+---------------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes ​     | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+---------------+-----------+
 +|     1 | BackupCatalogo | 2014-04-12 15:13:50 | B    | F     ​| ​       1 |        43,545 | T         |
 +|     2 | BackupDirector | 2014-04-12 15:14:03 | B    | F     ​| ​   1,891 |     ​8,​068,​884 | T         |
 +|     3 | BackupWin2008 ​ | 2014-04-12 15:29:26 | B    | F     ​| ​  ​72,​791 | 4,​444,​285,​065 | T         |
 +|     4 | BackupDebian ​  | 2014-04-12 15:54:20 | B    | F     ​| ​   1,655 |    22,404,559 | T         |
 ++-------+----------------+---------------------+------+-------+----------+---------------+-----------+
 +*
 +</​sxh>​
 +
 +====== Configuração de um Cliente CentOS 6/7 ======
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialcentos6_en para que não falte nenhum pacote ou configuração. ​
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialcentos7_en para que não falte nenhum pacote ou configuração. ​
 +
 +
 +Vamos instalar os pré-requisitos para podermos compilar o bacula
 +<sxh bash>
 +yum install readline-devel readline-static readline zlib zlib-devel \
 + ​zlib-static libmcrypt-devel openssl-devel xz -y
 +</​sxh>​
 +
 +Agora vamos criar os diretórios para o bacula
 +<sxh bash>
 +mkdir /​var/​lib/​bacula
 +mkdir /​var/​run/​bacula
 +mkdir /​var/​log/​bacula
 +mkdir -p /​etc/​bacula/​scripts
 +mkdir -p /​etc/​bacula/​keys
 +</​sxh>​
 +
 +Agora vamos criar o usuário bacula
 +<sxh bash>
 +useradd -s /bin/false -d /​var/​lib/​bacula ​ bacula
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos diretórios
 +<sxh bash>
 +chown -R bacula:​bacula /​var/​lib/​bacula /​var/​run/​bacula /​var/​log/​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos obter o pacote do bacula
 +<sxh bash>
 +cd /usr/src
 +wget -c http://​wiki.douglasqsantos.com.br/​Downloads/​bacula/​bacula-5.2.13.tar.gz
 +</​sxh>​
 +
 +Agora vamos desempacotar o bacula
 +<sxh bash>
 +tar -xzvf bacula-5.2.13.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar a pasta do bacula
 +<sxh bash>
 +cd bacula-5.2.13/​
 +</​sxh>​
 +
 +Agora vamos preparar o pacote do bacula
 +<sxh bash>
 +CFLAGS="​-g -Wall" ./configure --enable-client-only --enable-smartalloc --with-working-dir=/​var/​lib/​bacula --with-pid-dir=/​var/​run/​bacula \
 +--with-logdir=/​var/​log/​bacula ​ --with-scriptdir=/​etc/​bacula/​scripts --with-readline=/​usr/​include/​readline ​ --disable-conio
 +</​sxh>​
 +
 +Agora vamos mandar compilar o bacula e instalar o bacula client
 +<sxh bash>
 +make && make install && make install-autostart
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões dos arquivos
 +<sxh bash>
 +chown -R bacula:​bacula /etc/bacula
 +</​sxh>​
 +
 +Agora vamos ajustar o /etc/hosts do cliente
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 ​      ​localhost
 +192.168.0.81 ​   centos.douglasqsantos.com.br ​     centos
 +192.168.0.80 ​   bacula.douglasqsantos.com.br ​     bacula
 +[...]
 +</​sxh>​
 +
 +Vamos remover dois scripts que não são necessários
 +<sxh bash>
 +rm -rf /​etc/​init.d/​bacula-sd
 +rm -rf /​etc/​init.d/​bacula-dir
 +</​sxh>​
 +
 +Agora vamos fazer o backup dos arquivos de configuração do bacula
 +<sxh bash>
 +mkdir /​usr/​src/​olds
 +cp -Rfa /etc/bacula /​usr/​src/​olds
 +</​sxh>​
 +
 +Agora vamos configurar o cliente
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-fd.conf
 +##############################################################​
 +# ARQUIVO DE CONFIGURACAO DO FILE DAEMON DO BACULA ​          #
 +##############################################################​
 + 
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir #Mudar essa linha para bacula-dir
 +  Password = "​Mvgs2vnIjGHG7aL2U+bLbdi3k2pl6mKofPXVShaj5Z2V"​
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   ​status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon #Mudar essa linha para bacula-mon
 +  Password = "​9n0G0z0u4+cPhxuBaYfAtsIIln0HPEi7CXoTG7u9jNy8"​
 +  Monitor = yes
 +}
 +
 +#
 +# "​Global"​ File daemon configuration specifications
 +#
 +FileDaemon {                          # this is me
 +  Name = centos-fd
 +  FDport = 9102                  # where we listen for the director
 +  WorkingDirectory = /​var/​lib/​bacula
 +  Pid Directory = /​var/​run/​bacula
 +  Maximum Concurrent Jobs = 20
 +  FDAddress = 0.0.0.0
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</​sxh>​
 +
 +
 +Agora vamos ajustar o arquivo do bconsole que é como vamos conectar no bacula para fazer backup pela linha de comando
 +<sxh bash>
 +vim /​etc/​bacula/​bconsole.conf
 +#
 +# Bacula User Agent (or Console) Configuration File
 +#
 +
 +Director {
 +  Name = bacula-dir
 +  DIRport = 9101
 +  address = bacula.douglasqsantos.com.br
 +  Password = "​Cv70F6pf1t6pBopT4vQOnigDrR0v3L"​ #Senha do bacula director
 +}
 +</​sxh>​
 +
 +Agora vamos iniciar o serviço do bacula-fd
 +<sxh bash>
 +/​etc/​init.d/​bacula-fd restart
 +</​sxh>​
 +
 +Agora vamos listar verificar se o bacula está escutando
 +<sxh bash>
 +netstat -natu | egrep 9102
 +tcp        0      0 0.0.0.0:​9102 ​           0.0.0.0:​* ​              ​OUÇA ​
 +</​sxh>​
 +
 +Agora **no servidor bacula** vamos ajustar a configuração do novo cliente
 +<sxh bash>
 +vim /​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +[...]
 +#Inserir no final do arquivo
 +Job {
 +        Name = "​BackupCentOS" ​                          # Nome do Job para Backup do Director (Proprio Servidor Bacula)
 +        JobDefs = "​DefaultJobs" ​                          # JObDefs Definido
 +        Client = centos-fd ​                               # Cliente fd
 +}
 +
 +Client {
 +  Name = centos-fd ​                                       # Cliente fd
 +  Address = centos.douglasqsantos.com.br ​                           # Ajustado no /etc/hosts
 +  Password = "​Mvgs2vnIjGHG7aL2U+bLbdi3k2pl6mKofPXVShaj5Z2V" ​    # Senha do Director do Bacula que foi configurado no cliente na primeira sessão Director
 +  @/​etc/​bacula/​clientes/​basic-client ​ # Arquivo onde contem informacoes sobre o cliente.
 +}
 +</​sxh>​
 +
 +Aqui não esquecer de deixar a senha Password da sessão Client a mesma que esta na primeira sessão Director no bacula-fd.conf do cliente.
 +
 +Agora vamos recarregar o bacula
 +<sxh bash>
 +bconsole
 +Connecting to Director bacula:9101
 +1000 OK: bacula-dir Version: 5.2.13 (19 February 2013)
 +Enter a period to cancel a command.
 +*reload
 +</​sxh>​
 +
 +Agora vamos consultar o nosso novo cliente no bconsole
 +<sxh bash>
 +*status client=centos-fd ​
 +Connecting to Client centos-fd at centos.douglasqsantos.com.br:​9102
 +
 +centos-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu redhat ​
 +Daemon started 11-Mai-13 19:10. Jobs: run=0 running=0.
 + Heap: heap=135,​168 smbytes=24,​561 max_bytes=24,​708 bufs=65 max_bufs=66
 + ​Sizeof:​ boffset_t=8 size_t=8 debug=0 trace=0 ​
 +Running Jobs:
 +Director connected at: 11-Mai-13 19:13
 +No Jobs running.
 +====
 +
 +Terminated Jobs:
 +====
 +*
 +</​sxh>​
 +
 +Agora vamos fazer um backup do nosso cliente
 +<sxh bash>
 +*run
 +Automatically selected Catalog: Catalogo
 +Using Catalog "​Catalogo"​
 +A job name must be specified.
 +The defined Job resources are:
 +     1: BackupCatalogo
 +     2: RestoreFiles
 +     3: BackupDirector
 +     4: BackupCentOS
 +Select Job resource (1-4): 4
 +Run Backup job
 +JobName: ​ BackupCentOS
 +Level: ​   Incremental
 +Client: ​  ​centos-fd
 +FileSet: ​ Full Set
 +Pool:     File (From Job resource)
 +Storage: ​ File (From Job resource)
 +When:     ​2014-05-11 19:14:22
 +Priority: 10
 +OK to run? (yes/​mod/​no):​ yes
 +Job queued. JobId=6
 +You have messages.
 +</​sxh>​
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime ​          | type | level | jobfiles | jobbytes ​ | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2014-05-11 17:53:14 | B    | F     ​| ​       1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2014-05-11 17:55:09 | B    | F     ​| ​       1 |     6,949 | T         |
 +|     3 | BackupDirector | 2014-05-11 17:59:24 | B    | F     ​| ​   1,249 | 8,040,840 | T         |
 +|     4 | BackupCatalogo | 2014-05-11 18:12:02 | B    | F     ​| ​       1 |    61,008 | T         |
 +|     5 | BackupDirector | 2014-05-11 18:16:43 | B    | F     ​| ​   1,259 | 8,617,936 | T         |
 +|     6 | BackupCentOS ​  | 2014-05-11 19:14:25 | B    | F     ​| ​   1,189 | 8,546,112 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +</​sxh>​
 +
 +
 +====== Referências ======
 +  - http://​www.bacula.org/​5.2.x-manuals/​en/​main/​main/​New_Features_in_5_2_x.html
 +  - http://​www.bacula.org/​5.0.x-manuals/​en/​main/​main/​Windows_Version_Bacula.html
 +  - http://​sourceforge.net/​mailarchive/​forum.php?​set=custom&​viewmonth=&​viewday=&​forum_name=bacula-commits&​style=nested&​max_rows=100&​submit=Change+View
 +  - http://​tidahora.com.br/​index.html/​doku.php?​id=start