Differences

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

Link to this comparison view

instalacao_e_configuracao_do_bacula_com_postgresql_no_centos6.4_pt_br [2019/08/08 15:23] (current)
Line 1: Line 1:
 +====== Instalação e Configuração do Bacula no CentOS 6.4 ======
 +
 +
 +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. 
 +
 +O que eu vou utilizar:
 +  * <nowiki>CentOS</nowiki> 6.4
 +    * Bacula Server 
 +    * IP: 192.168.0.80/24
 +    * Hostname: bacula.douglasqsantos.com.br
 +  * <nowiki>CentOS</nowiki> 6.4
 +    * Bacula Client
 +    * IP: 192.168.0.81/24
 +    * Hostname: centos.douglasqsantos.com.br
 +  * Debian Squeeze
 +    * Bacula Client
 +    * IP: 192.168.0.82/24
 +    * Hostname: squeeze.douglasqsantos.com.br
 +  * Debian Wheezy
 +    * Bacula Client
 +    * IP: 192.168.0.83/24
 +    * Hostname: wheezy.douglasqsantos.com.br
 +  * <nowiki>FreeBSD</nowiki> 9.1
 +    * Bacula Client
 +    * IP: 192.168.0.84
 +    * Hostname: freebsd.douglasqsantos.com.br
 +  * <nowiki>OpenBSD</nowiki> 5.3
 +    * Bacula Client
 +    * IP: 192.168.0.85/24
 +    * Hostname: openbsd.douglasqsantos.com.br   
 +  * Windows 2008 R2
 +    * Bacula Client
 +    * IP: 192.168.0.86/24
 +    * Hostname: win2k8R2.douglasqsantos.com.br  
 +  * Windows 2012
 +    * Bacula Client
 +    * IP: 192.168.0.87/24
 +    * Hostname: win2k12.douglasqsantos.com.br  
 +
 +Vamos ajustar o /etc/hosts pois não estou utilizando dns, porém pode ser utilizado o serviço de dns para identificar os cliente
 +<sxh bash>
 +vim /etc/hosts
 +[...]
 +192.168.0.80  bacula.douglasqsantos.com.br  bacula
 +192.168.0.81  centos.douglasqsantos.com.br  centos
 +192.168.0.82  squeeze.douglasqsantos.com.br squeeze
 +192.168.0.83  wheezy.douglasqsantos.com.br  wheezy
 +192.168.0.84  freebsd.douglasqsantos.com.br freebsd
 +192.168.0.85  openbsd.douglasqsantos.com.br openbsd
 +192.168.0.86  win2k8R2.douglasqsantos.com.br win2k8R2
 +192.168.0.87  win2k12.douglasqsantos.com.br win2k12
 +</sxh>
 +
 +Vamos atualizar os repositório e vamos fazer um upgrade do sistema
 +<sxh bash>
 +yum check-update && yum update -y
 +</sxh>
 +
 +Agora vamos instalar os pacotes para a configuração do postgreSQL
 +<sxh bash>
 +yum install postgresql postgresql-contrib postgresql-devel postgresql-docs postgresql-libs postgresql-server perl-Class-DBI-Pg -y
 +</sxh>
 +
 +Agora vamos instalar os pacotes que vamos precisar para compilar o Bacula
 +<sxh bash>
 +yum install readline-devel readline-static readline zlib zlib-devel zlib-static libmcrypto-devel openssl-devel -y
 +</sxh>
 +
 +Agora vamos instalar os pacotes que vamos precisar para o webmin
 +<sxh bash>
 +yum install perl-Net-SSLeay perl-Crypt-SSLeay perl-IO-Pty-Easy perl-Authen-PAM perl-ExtUtils-PkgConfig -y
 +</sxh>
 +
 +Agora vamos inserir o postgreSQL na inicialização do <nowiki>CentOS</nowiki>
 +<sxh bash>
 +chkconfig --add postgresql
 +chkconfig postgresql on
 +</sxh>
 +
 +Agora vamos iniciar o banco postgreSQL
 +<sxh bash>
 +/etc/init.d/postgresql initdb
 +</sxh>
 +
 +Agora vamos deixar o listen_address do postgreSQL da seguinte forma
 +<sxh bash>
 +vim /var/lib/pgsql/data/postgresql.conf
 +[...]
 +listen_addresses = '*'
 +[...]
 +</sxh>
 +
 +Agora vamos deixar a ultima linha do pg_hda com autenticação do tipo md5 que o bacula vai utilizar
 +<sxh bash>
 +vim /var/lib/pgsql/data/pg_hba.conf
 +[...]
 +host    all         all         ::1/128               md5
 +</sxh>
 +
 +Agora vamos reiniciar o postgreSQL
 +<sxh bash>
 +/etc/init.d/postgresql restart
 +</sxh>
 +
 +Agora vamos criar um arquivo com os dados que precisamos importar no postgreSQL
 +<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 vamos importar o arquivo para o postgreSQL
 +<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
 +mkdir /etc/bacula/clientes
 +mkdir -p /etc/bacula/keys/clientes
 +mkdir /srv/backup
 +</sxh>
 +
 +Agora vamos criar um usuário
 +<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 acessar o diretório /usr/src 
 +<sxh bash>
 +cd /usr/src
 +</sxh>
 +
 +Agora vamos obter o bacula
 +<sxh bash>
 +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 o diretório dos fontes do bacula
 +<sxh bash>
 +cd bacula-5.2.13/
 +</sxh>
 +
 +Agora vamos gerar a configuração do bacula
 +<sxh bash>
 +CFLAGS="-g -Wall" ./configure --with-openssl=yes --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 compilar o bacula e mandar instalar ele
 +<sxh bash>
 +make && make install && make install-autostart
 +</sxh>
 +
 +Agora vamos ajustar as permissões do diretório do bacula
 +<sxh bash>
 +chown -R bacula:bacula /etc/bacula
 +</sxh>
 +
 +Agora vamos popular o banco de dados do bacula
 +<sxh bash>
 +su - bacula -c '/etc/bacula/scripts/make_postgresql_tables -U bacula -d bacula'
 +</sxh>
 +
 +Agora vamos desativar o bash do bacula
 +<sxh bash>
 +usermod -s /bin/false bacula
 +</sxh>
 +
 +Agora vamos criar um diretório para armazenar os arquivos do bacula
 +<sxh bash>
 +mkdir /usr/src/olds
 +</sxh>
 +
 +Agora vamos copiar os arquivos
 +<sxh bash>
 +cp -Rfa /etc/bacula /usr/src/olds/bacula
 +</sxh>
 +
 +Agora vamos configurar o bacula-dir.conf que vai ser a base do nosso bacula
 +<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 = "localhost";  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 vai armazenar os clientes e o jobs
 +<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: localhost
 +
 +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 vai controlar os filesets que vão ser os arquivos/diretório que vão ser copiados
 +<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 = /home
 +                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
 +                        compression = GZIP
 +                        verify = pin1
 +                        onefs = no
 +                }
 +                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 = GZIP1
 +                                OneFS = no
 +                                }
 +                        File = "C:/"
 +                }
 +}
 +</sxh>
 +
 +Arquivo de controle dos agendamentos
 +<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 configuração da storage aonde vai ser armazenados os backups
 +<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 = bacula.douglasqsantos.com.br                  # Nome ou IP do Storage do Bacula
 +  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 criar o arquivo de configuração do cliente bacula, pois o nosso servidor bacula tambem vai ser 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 = "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 criar um arquivo de controle generico 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 ajustar o arquivo do bconsole que é um cliente em modo texto para operar o bacula
 +<sxh bash>
 +vim /etc/bacula/bconsole.conf
 +#Configuração do Bacula console (bconsole)
 +Director {
 +  Name = bacula-dir #Nome do servidor que é o bacula director
 +  DIRport = 9101 #Porta que o bacula director está escutando
 +  address = bacula #endereço do servidor bacula director
 +  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3L" #senha do bacula director
 +}
 +</sxh>
 +
 +Agora vamos ajustar as permissões dos diretório que vão armazenar os backups
 +<sxh bash>
 +chown bacula:tape /srv/backup
 +chown -R bacula:bacula /etc/bacula
 +</sxh>
 +
 +Agora vamos inserir o bacula na inicialização do sistema
 +<sxh bash>
 +chkconfig --add bacula-dir
 +chkconfig bacula-dir on
 +chkconfig --add bacula-sd
 +chkconfig bacula-sd on
 +chkconfig --add bacula-fd
 +chkconfig bacula-fd on
 +</sxh>
 +
 +Agora vamos iniciar o serviço do bacula
 +<sxh bash>
 +/etc/init.d/bacula-dir start
 +/etc/init.d/bacula-sd start
 +/etc/init.d/bacula-fd start
 +</sxh>
 +
 +Agora 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>
 +
 +Agora vamos conferir o status do nosso director
 +<sxh bash>
 +*status director 
 +bacula-dir Version: 5.2.13 (19 February 2013) x86_64-unknown-linux-gnu redhat 
 +Daemon started 11-Mai-13 17:49. Jobs: run=0, running=0 mode=0,0
 + Heap: heap=258,048 smbytes=57,667 max_bytes=88,987 bufs=224 max_bufs=378
 +
 +Scheduled Jobs:
 +Level          Type     Pri  Scheduled          Name               Volume
 +===================================================================================
 +Full           Backup    11  12-Mai-13 09:15    BackupCatalogo     *unknown*
 +Differential   Backup    10  12-Mai-13 16:50    BackupDirector     *unknown*
 +====
 +
 +Running Jobs:
 +Console connected at 11-Mai-13 17:51
 +No Jobs running.
 +====
 +No Terminated Jobs.
 +====
 +</sxh>
 +
 +Como podemos notar até o momento não temos nenhum backup do nosso Bacula
 +
 +Vamos fazer o backup do catalog dele primeiro.
 +
 +<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:     2013-05-11 17:53:11
 +Priority: 11
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=1
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+----------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+----------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |   43,545 | T         |
 ++-------+----------------+---------------------+------+-------+----------+----------+-----------+
 +You have messages.
 +</sxh>
 +
 +Note que temos uma mensagem vamos visualizar ela
 +<sxh bash>
 +*mes
 +11-Mai 17:55 bacula-dir JobId 1: shell command: run BeforeJob "/etc/bacula/scripts/make_catalog_backup.pl Catalogo"
 +11-Mai 17:55 bacula-dir JobId 1: Start Backup JobId 2, Job=BackupCatalogo.2013-05-11_17.55.06_06
 +11-Mai 17:55 bacula-dir JobId 1: Using Device "FileStorage" to write.
 +11-Mai 17:55 bacula-sd JobId 1: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 17:55 bacula-sd JobId 1: Ready to append to end of Volume "volume0001" size=44303
 +11-Mai 17:55 bacula-sd JobId 1: Elapsed time=00:00:01, Transfer rate=7.062 K Bytes/second
 +11-Mai 17:55 bacula-dir JobId 1: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  1
 +  Job:                    BackupCatalogo.2013-05-11_17.55.06_06
 +  Backup Level:           Full
 +  Client:                 "bacula-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,
 +  FileSet:                "Catalogo" 2013-05-11 17:53:12
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 17:55:02
 +  Start time:             11-Mai-2013 17:55:09
 +  End time:               11-Mai-2013 17:55:09
 +  Elapsed time:           0 secs
 +  Priority:               11
 +  FD Files Written:       1
 +  SD Files Written:       1
 +  FD Bytes Written:       6,949 (6.949 KB)
 +  SD Bytes Written:       7,062 (7.062 KB)
 +  Rate:                   0.0 KB/s
 +  Software Compression:   85.1 %
 +  VSS:                    no
 +  Encryption:             no
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      2
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      51,805 (51.80 KB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 17:55 bacula-dir JobId 1: Begin pruning Jobs older than 6 months .
 +11-Mai 17:55 bacula-dir JobId 1: No Jobs found to prune.
 +11-Mai 17:55 bacula-dir JobId 1: Begin pruning Files.
 +11-Mai 17:55 bacula-dir JobId 1: No Files found to prune.
 +11-Mai 17:55 bacula-dir JobId 1: End auto prune.
 +</sxh>
 +
 +O que precisamos notar aqui é  **Software Compression:   85.1 %** tivemos uma boa compressão eu usei o formato GZIP para compactar os dados o padrão dele é GZIP6 chegando no máximo até o GZIP9 porém quando mais compressão mais processamento. Note também que eu setei a assinatura dos dados ou seja a sua criptografia mais não foi feita nosso parâmetro de consulta é **Encryption:             no**
 +
 +Agora que já fizemos um backup do catalogo que é o banco de dados do bacula que armazena as informações sobre cliente, storage, volumes e afins agora vamos fazer um backup dos dados do nosso Bacula
 +
 +<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:     2013-05-11 17:59:21
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=3
 +You have messages.
 +</sxh>
 +
 +Agora vamos consultar os jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |     6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 | 8,040,840 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +</sxh>
 +
 +Note que já terminou o meu backup foi rápido, agora vamos consultar a mensagem a respeito do nosso backup
 +<sxh bash>
 +*mes
 +11-Mai 17:59 bacula-dir JobId 3: No prior Full backup Job record found.
 +11-Mai 17:59 bacula-dir JobId 3: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +11-Mai 17:59 bacula-dir JobId 3: Start Backup JobId 3, Job=BackupDirector.2013-05-11_17.59.22_07
 +11-Mai 17:59 bacula-dir JobId 3: Using Device "FileStorage" to write.
 +11-Mai 17:59 bacula-sd JobId 3: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 17:59 bacula-sd JobId 3: Ready to append to end of Volume "volume0001" size=51805
 +11-Mai 17:59 bacula-sd JobId 3: Elapsed time=00:00:04, Transfer rate=2.047 M Bytes/second
 +11-Mai 17:59 bacula-dir JobId 3: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  3
 +  Job:                    BackupDirector.2013-05-11_17.59.22_07
 +  Backup Level:           Full (upgraded from Incremental)
 +  Client:                 "bacula-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 17:59:21
 +  Start time:             11-Mai-2013 17:59:24
 +  End time:               11-Mai-2013 17:59:28
 +  Elapsed time:           4 secs
 +  Priority:               10
 +  FD Files Written:       1,249
 +  SD Files Written:       1,249
 +  FD Bytes Written:       8,040,840 (8.040 MB)
 +  SD Bytes Written:       8,188,087 (8.188 MB)
 +  Rate:                   2010.2 KB/s
 +  Software Compression:   65.8 %
 +  VSS:                    no
 +  Encryption:             no
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      3
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      8,283,388 (8.283 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 17:59 bacula-dir JobId 3: Begin pruning Jobs older than 6 months .
 +11-Mai 17:59 bacula-dir JobId 3: No Jobs found to prune.
 +11-Mai 17:59 bacula-dir JobId 3: Begin pruning Files.
 +11-Mai 17:59 bacula-dir JobId 3: No Files found to prune.
 +11-Mai 17:59 bacula-dir JobId 3: End auto prune.
 +
 +* quit
 +</sxh>
 +
 +Note que o nosso backup está ok com uma compressão de 65.8% porém nada de criptografia :(
 +
 +Vamos ajustar isso.
 +
 +Vamos acessar o diretório que vai conter as chaves
 +<sxh bash>
 +cd /etc/bacula/keys
 +</sxh>
 +
 +Vamos gerar a chave do nosso servidor bacula
 +<sxh bash>
 +openssl genrsa -out master.key 2048
 +</sxh>
 +
 +Agora vamos assinar ela
 +<sxh bash>
 +openssl req -new -key master.key -x509 -out master.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:bacula.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos acessar o diretório que vai conter as chaves dos nossos clientes
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Agora vamos a key do nosso cliente
 +<sxh bash>
 +openssl genrsa -out bacula-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key bacula-fd.key -x509 -out bacula-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:bacula.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos colocar as .key e a .cert do cliente em uma chave .pem
 +<sxh bash>
 +cat bacula-fd.key bacula-fd.cert > bacula-fd.pem
 +</sxh>
 +
 +Explicação da bacula para isso:
 +Note, there seems to be a lot of confusion around the file extensions given to these keys. For example, a .pem file can contain all the following: private keys (RSA and DSA), public keys (RSA and DSA) and (x509) certificates. It is the default format for <nowiki>OpenSSL</nowiki>. It stores data Base64 encoded DER format, surrounded by ASCII headers, so is suitable for text mode transfers between systems. A .pem file may contain any number of keys either public or private. We use it in cases where there is both a public and a private key.
 +
 +Agora vamos configurar o bacula-fd.conf para ajustar as nossas chaves
 +<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
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "/etc/bacula/keys/clientes/bacula-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "/etc/bacula/keys/master.cert"    # Arquivo com a chave publica do servidor
 +
 +}
 +
 +# 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 reiniciar o bacula-fd para que ele reconheça a sua nova configuração
 +<sxh bash>
 +/etc/init.d/bacula-fd restart
 +</sxh>
 +
 +Agora vamos no bconsole novamente fazer o backup do catalogo
 +<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.
 +*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:     2013-05-11 18:11:59
 +Priority: 11
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=4
 +</sxh>
 +
 +Agora vamos listar a nossa mensagem de backup
 +<sxh bash>
 +*mes
 +11-Mai 18:12 bacula-dir JobId 4: shell command: run BeforeJob "/etc/bacula/scripts/make_catalog_backup.pl Catalogo"
 +11-Mai 18:12 bacula-dir JobId 4: Start Backup JobId 4, Job=BackupCatalogo.2013-05-11_18.12.00_10
 +11-Mai 18:12 bacula-dir JobId 4: Using Device "FileStorage" to write.
 +11-Mai 18:12 bacula-sd JobId 4: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 18:12 bacula-sd JobId 4: Ready to append to end of Volume "volume0001" size=8283388
 +11-Mai 18:12 bacula-sd JobId 4: Elapsed time=00:00:01, Transfer rate=61.44 K Bytes/second
 +11-Mai 18:12 bacula-dir JobId 4: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  4
 +  Job:                    BackupCatalogo.2013-05-11_18.12.00_10
 +  Backup Level:           Full
 +  Client:                 "bacula-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,
 +  FileSet:                "Catalogo" 2013-05-11 17:53:12
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 18:11:59
 +  Start time:             11-Mai-2013 18:12:02
 +  End time:               11-Mai-2013 18:12:03
 +  Elapsed time:           1 sec
 +  Priority:               11
 +  FD Files Written:       1
 +  SD Files Written:       1
 +  FD Bytes Written:       61,008 (61.00 KB)
 +  SD Bytes Written:       61,443 (61.44 KB)
 +  Rate:                   61.0 KB/s
 +  Software Compression:   68.2 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      4
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      8,345,331 (8.345 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 18:12 bacula-dir JobId 4: Begin pruning Jobs older than 6 months .
 +11-Mai 18:12 bacula-dir JobId 4: No Jobs found to prune.
 +11-Mai 18:12 bacula-dir JobId 4: Begin pruning Files.
 +11-Mai 18:12 bacula-dir JobId 4: No Files found to prune.
 +11-Mai 18:12 bacula-dir JobId 4: End auto prune.
 +</sxh>
 +
 +Note que agora temos 68.2% de compactação e o nosso Encryption está como yes
 +
 +Agora vamos fazer um backup novamente dos arquivos do bacula
 +<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:     2013-05-11 18:16:34
 +Priority: 10
 +OK to run? (yes/mod/no): mod
 +Parameters to modify:
 +     1: Level
 +     2: Storage
 +     3: Job
 +     4: FileSet
 +     5: Client
 +     6: When
 +     7: Priority
 +     8: Pool
 +     9: Plugin Options
 +Select parameter to modify (1-9): 1
 +Levels:
 +     1: Full
 +     2: Incremental
 +     3: Differential
 +     4: Since
 +     5: VirtualFull
 +Select level (1-5): 1
 +Run Backup job
 +JobName:  BackupDirector
 +Level:    Full
 +Client:   bacula-fd
 +FileSet:  Full Set
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 18:16:34
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=5
 +</sxh>
 +
 +Agora vamos consultar os nossos jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |     6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 | 8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |    61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 | 8,617,936 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +You have messages.
 +</sxh>
 +
 +Agora vamos consultar as mensagens
 +<sxh bash>
 +*mes
 +11-Mai 18:16 bacula-dir JobId 5: Start Backup JobId 5, Job=BackupDirector.2013-05-11_18.16.41_11
 +11-Mai 18:16 bacula-dir JobId 5: Using Device "FileStorage" to write.
 +11-Mai 18:16 bacula-sd JobId 5: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 18:16 bacula-sd JobId 5: Ready to append to end of Volume "volume0001" size=8345331
 +11-Mai 18:16 bacula-sd JobId 5: Elapsed time=00:00:05, Transfer rate=1.808 M Bytes/second
 +11-Mai 18:16 bacula-dir JobId 5: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  5
 +  Job:                    BackupDirector.2013-05-11_18.16.41_11
 +  Backup Level:           Full
 +  Client:                 "bacula-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 18:16:34
 +  Start time:             11-Mai-2013 18:16:43
 +  End time:               11-Mai-2013 18:16:48
 +  Elapsed time:           5 secs
 +  Priority:               10
 +  FD Files Written:       1,259
 +  SD Files Written:       1,259
 +  FD Bytes Written:       8,617,936 (8.617 MB)
 +  SD Bytes Written:       9,043,662 (9.043 MB)
 +  Rate:                   1723.6 KB/s
 +  Software Compression:   63.4 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      5
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      17,464,157 (17.46 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 18:16 bacula-dir JobId 5: Begin pruning Jobs older than 6 months .
 +11-Mai 18:16 bacula-dir JobId 5: No Jobs found to prune.
 +11-Mai 18:16 bacula-dir JobId 5: Begin pruning Files.
 +11-Mai 18:16 bacula-dir JobId 5: No Files found to prune.
 +11-Mai 18:16 bacula-dir JobId 5: End auto prune.
 +</sxh>
 +
 +Note que agora temos 63.4% de compressão em nosso backup e temos a flag de Encryption como yes :D
 +
 +====== Configuração de um Cliente CentOS ======
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php?id=confinicialcentos6 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 libmcrypto-devel openssl-devel -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 --with-openssl=yes --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
 +#
 +# Default  Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.13 (19 February 2013) -- redhat 
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name to
 +#
 +
 +#
 +# 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
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "/etc/bacula/keys/centos-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "/etc/bacula/keys/master.cert"    # Arquivo com a chave publica do servidor
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</sxh>
 +
 +Aqui não podemos deixar de mudar em Director o Name para bacula-dir e no segundo Director o Name para bacula-mon e por ultimo em Messages mudar o Name para bacula-dir, depois temos que adicionar as configurações da criptografia, já vamos gerar as chaves.
 +
 +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 **no servidor bacula** precisamos gerar as chaves para o <nowiki>CentOS</nowiki>
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out centos-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key centos-fd.key -x509 -out centos-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:centos.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat centos-fd.key centos-fd.cert > centos-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o <nowiki>CentOS</nowiki> client
 +<sxh bash>
 +scp centos-fd.pem ../master.cert centos.douglasqsantos.com.br:/etc/bacula/keys/
 +[...]
 +root@centos.douglasqsantos.com.br's password: 
 +centos-fd.pem
 +master.cert 
 +</sxh>
 +
 +Agora no cliente <nowiki>CentOS</nowiki> vamos ajustar as permissões das chaves
 +<sxh bash>
 +chown -R bacula:bacula /etc/bacula/keys
 +</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:     2013-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 | 2013-05-11 17:53:14 | B    | F            1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |     6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 | 8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |    61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 | 8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 | 8,546,112 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +</sxh>
 +
 +O backup já foi finalizado agora vamos ver a mensagem do nosso backup
 +<sxh bash>
 +*mes
 +11-Mai 19:14 bacula-dir JobId 6: No prior Full backup Job record found.
 +11-Mai 19:14 bacula-dir JobId 6: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +11-Mai 19:14 bacula-dir JobId 6: Start Backup JobId 6, Job=BackupCentOS.2013-05-11_19.14.23_13
 +11-Mai 19:14 bacula-dir JobId 6: Using Device "FileStorage" to write.
 +11-Mai 19:14 bacula-sd JobId 6: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 19:14 bacula-sd JobId 6: Ready to append to end of Volume "volume0001" size=17464157
 +11-Mai 19:14 bacula-sd JobId 6: Elapsed time=00:00:06, Transfer rate=1.490 M Bytes/second
 +11-Mai 19:14 bacula-dir JobId 6: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  6
 +  Job:                    BackupCentOS.2013-05-11_19.14.23_13
 +  Backup Level:           Full (upgraded from Incremental)
 +  Client:                 "centos-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,redhat,
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 19:14:22
 +  Start time:             11-Mai-2013 19:14:25
 +  End time:               11-Mai-2013 19:14:32
 +  Elapsed time:           7 secs
 +  Priority:               10
 +  FD Files Written:       1,189
 +  SD Files Written:       1,189
 +  FD Bytes Written:       8,546,112 (8.546 MB)
 +  SD Bytes Written:       8,944,824 (8.944 MB)
 +  Rate:                   1220.9 KB/s
 +  Software Compression:   63.6 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      6
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      26,479,817 (26.47 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 19:14 bacula-dir JobId 6: Begin pruning Jobs older than 6 months .
 +11-Mai 19:14 bacula-dir JobId 6: No Jobs found to prune.
 +11-Mai 19:14 bacula-dir JobId 6: Begin pruning Files.
 +11-Mai 19:14 bacula-dir JobId 6: No Files found to prune.
 +11-Mai 19:14 bacula-dir JobId 6: End auto prune.
 +</sxh>
 +
 +Aqui nós tivemos uma compactação de 63.6% e a nossa flag de criptografia está como yes :D
 +
 +====== Configuração de um Cliente Debian Squeeze ======
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php?id=confinicialsqueeze 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 -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 --with-openssl=yes --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.82    squeeze.douglasqsantos.com.br     squeeze
 +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
 +#
 +# Default  Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.13 (19 February 2013) -- debian 6.0.7
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name to
 +#
 +
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir
 +  Password = "B0ISfMxVNEXhpsPQj7v095eWPBjK4J3N8xPuhPuZyVRw"
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon
 +  Password = "Fu6iH9kZuvoye6haHAr6gB73NyLIu4DN9V9Me65w7Wxx"
 +  Monitor = yes
 +}
 +
 +#
 +# "Global" File daemon configuration specifications
 +#
 +FileDaemon {                          # this is me
 +  Name = squeeze-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
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "/etc/bacula/keys/squeeze-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "/etc/bacula/keys/master.cert"    # Arquivo com a chave publica do servidor
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</sxh>
 +
 +Aqui não podemos deixar de mudar em Director o Name para bacula-dir e no segundo Director o Name para bacula-mon e por ultimo em Messages mudar o Name para bacula-dir, depois temos que adicionar as configurações da criptografia, já vamos gerar as chaves.
 +
 +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 **no servidor bacula** precisamos gerar as chaves para o Squeeze
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out squeeze-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key squeeze-fd.key -x509 -out squeeze-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:squeeze.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat squeeze-fd.key squeeze-fd.cert > squeeze-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o Squeeze client
 +<sxh bash>
 +scp squeeze-fd.pem ../master.cert squeeze.douglasqsantos.com.br:/etc/bacula/keys/
 +[...]
 +root@squeeze.douglasqsantos.com.br's password: 
 +squeeze-fd.pem
 +master.cert 
 +</sxh>
 +
 +Agora no cliente Squeeze vamos ajustar as permissões das chaves
 +<sxh bash>
 +chown -R bacula:bacula /etc/bacula/keys
 +</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 = "BackupSqueeze"                           # Nome do Job para Backup do Director (Proprio Servidor Bacula)
 +        JobDefs = "DefaultJobs"                           # JObDefs Definido
 +        Client = squeeze-fd                                # Cliente fd
 +}
 +
 +Client {
 +  Name = squeeze-fd                                        # Cliente fd
 +  Address = squeeze.douglasqsantos.com.br                            # Ajustado no /etc/hosts
 +  Password = "B0ISfMxVNEXhpsPQj7v095eWPBjK4J3N8xPuhPuZyVRw"     # 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=squeeze-fd 
 +Connecting to Client squeeze-fd at squeeze.douglasqsantos.com.br:9102
 +
 +squeeze-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 6.0.7
 +Daemon started 11-Mai-13 19:26. Jobs: run=0 running=0.
 + Heap: heap=270,336 smbytes=24,484 max_bytes=24,631 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:39
 +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
 +     5: BackupSqueeze
 +Select Job resource (1-5): 5
 +Run Backup job
 +JobName:  BackupSqueeze
 +Level:    Incremental
 +Client:   squeeze-fd
 +FileSet:  Full Set
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 19:38:21
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=7
 +You have messages.
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |     6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 | 8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |    61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 | 8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 | 8,546,112 | T         |
 +|     7 | BackupSqueeze  | 2013-05-11 19:38:24 | B    | F        1,490 | 5,780,720 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +</sxh>
 +
 +O backup já foi finalizado agora vamos ver a mensagem do nosso backup
 +<sxh bash>
 +*mes
 +11-Mai 19:38 bacula-dir JobId 7: No prior Full backup Job record found.
 +11-Mai 19:38 bacula-dir JobId 7: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +11-Mai 19:38 bacula-dir JobId 7: Start Backup JobId 7, Job=BackupSqueeze.2013-05-11_19.38.22_15
 +11-Mai 19:38 bacula-dir JobId 7: Using Device "FileStorage" to write.
 +11-Mai 19:38 bacula-sd JobId 7: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 19:38 bacula-sd JobId 7: Ready to append to end of Volume "volume0001" size=26479817
 +11-Mai 19:38 bacula-sd JobId 7: Elapsed time=00:00:04, Transfer rate=1.548 M Bytes/second
 +11-Mai 19:38 bacula-dir JobId 7: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  7
 +  Job:                    BackupSqueeze.2013-05-11_19.38.22_15
 +  Backup Level:           Full (upgraded from Incremental)
 +  Client:                 "squeeze-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,debian,6.0.7
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 19:38:21
 +  Start time:             11-Mai-2013 19:38:24
 +  End time:               11-Mai-2013 19:38:28
 +  Elapsed time:           4 secs
 +  Priority:               10
 +  FD Files Written:       1,490
 +  SD Files Written:       1,490
 +  FD Bytes Written:       5,780,720 (5.780 MB)
 +  SD Bytes Written:       6,195,022 (6.195 MB)
 +  Rate:                   1445.2 KB/s
 +  Software Compression:   65.1 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      7
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      32,743,809 (32.74 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 19:38 bacula-dir JobId 7: Begin pruning Jobs older than 6 months .
 +11-Mai 19:38 bacula-dir JobId 7: No Jobs found to prune.
 +11-Mai 19:38 bacula-dir JobId 7: Begin pruning Files.
 +11-Mai 19:38 bacula-dir JobId 7: No Files found to prune.
 +11-Mai 19:38 bacula-dir JobId 7: End auto prune.
 +</sxh>
 +
 +Aqui nós tivemos uma compactação de 65.1% e a nossa flag de criptografia está como yes :D
 +
 +====== Configuração de um Cliente Debian Wheezy ======
 +
 +Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php?id=confinicialwheezy 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 -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 --with-openssl=yes --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.83    wheezy.douglasqsantos.com.br      wheezy
 +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
 +#
 +# Default  Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.13 (19 February 2013) -- debian 7.0
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name to
 +#
 +
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir
 +  Password = "ldA/FW/6HktODjky55jBF9xdfWremQ8ZP6HBC1yD9lco"
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon
 +  Password = "unMs7FDbYottD65tMc1BKR8r+PvA03UAx5x0U1InjizE"
 +  Monitor = yes
 +}
 +
 +#
 +# "Global" File daemon configuration specifications
 +#
 +FileDaemon {                          # this is me
 +  Name = wheezy-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
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "/etc/bacula/keys/wheezy-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "/etc/bacula/keys/master.cert"    # Arquivo com a chave publica do servidor
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</sxh>
 +
 +Aqui não podemos deixar de mudar em Director o Name para bacula-dir e no segundo Director o Name para bacula-mon e por ultimo em Messages mudar o Name para bacula-dir, depois temos que adicionar as configurações da criptografia, já vamos gerar as chaves.
 +
 +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 **no servidor bacula** precisamos gerar as chaves para o Wheezy
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out wheezy-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key wheezy-fd.key -x509 -out wheezy-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:wheezy.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat wheezy-fd.key wheezy-fd.cert > wheezy-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o Wheezy client
 +<sxh bash>
 +scp wheezy-fd.pem ../master.cert wheezy.douglasqsantos.com.br:/etc/bacula/keys/
 +[...]
 +root@wheezy.douglasqsantos.com.br's password: 
 +wheezy-fd.pem
 +master.cert 
 +</sxh>
 +
 +Agora no cliente Wheezy vamos ajustar as permissões das chaves
 +<sxh bash>
 +chown -R bacula:bacula /etc/bacula/keys
 +</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 = "BackupWheezy"                             # Nome do Job para Backup do Cliente
 +        JobDefs = "DefaultJobs"                           # JObDefs Definido
 +        Client = wheezy-fd                                # Cliente fd
 +}
 +
 +Client {
 +  Name = wheezy-fd                                        # Cliente fd
 +  Address = wheezy.douglasqsantos.com.br                            # Ajustado no /etc/hosts
 +  Password = "ldA/FW/6HktODjky55jBF9xdfWremQ8ZP6HBC1yD9lco"     # 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=wheezy-fd 
 +Connecting to Client wheezy-fd at wheezy.douglasqsantos.com.br:9102
 +
 +wheezy-fd Version: 5.2.13 (19 February 2013)  x86_64-unknown-linux-gnu debian 7.0
 +Daemon started 11-Mai-13 19:49. Jobs: run=0 running=0.
 + Heap: heap=270,336 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:51
 +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
 +     5: BackupSqueeze
 +     6: BackupWheezy
 +Select Job resource (1-6): 6
 +Run Backup job
 +JobName:  BackupWheezy
 +Level:    Incremental
 +Client:   wheezy-fd
 +FileSet:  Full Set
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 19:50:30
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=8
 +You have messages.
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |     6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 | 8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |    61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 | 8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 | 8,546,112 | T         |
 +|     7 | BackupSqueeze  | 2013-05-11 19:38:24 | B    | F        1,490 | 5,780,720 | T         |
 +|     8 | BackupWheezy   | 2013-05-11 19:50:33 | B    | F        1,706 | 6,359,136 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +</sxh>
 +
 +O backup já foi finalizado agora vamos ver a mensagem do nosso backup
 +<sxh bash>
 +*mes
 +11-Mai 19:50 bacula-dir JobId 8: No prior Full backup Job record found.
 +11-Mai 19:50 bacula-dir JobId 8: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +11-Mai 19:50 bacula-dir JobId 8: Start Backup JobId 8, Job=BackupWheezy.2013-05-11_19.50.31_17
 +11-Mai 19:50 bacula-dir JobId 8: Using Device "FileStorage" to write.
 +11-Mai 19:50 bacula-sd JobId 8: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 19:50 bacula-sd JobId 8: Ready to append to end of Volume "volume0001" size=32743809
 +11-Mai 19:50 bacula-sd JobId 8: Elapsed time=00:00:04, Transfer rate=1.693 M Bytes/second
 +11-Mai 19:50 bacula-dir JobId 8: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  8
 +  Job:                    BackupWheezy.2013-05-11_19.50.31_17
 +  Backup Level:           Full (upgraded from Incremental)
 +  Client:                 "wheezy-fd" 5.2.13 (19Jan13) x86_64-unknown-linux-gnu,debian,7.0
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 19:50:30
 +  Start time:             11-Mai-2013 19:50:33
 +  End time:               11-Mai-2013 19:50:37
 +  Elapsed time:           4 secs
 +  Priority:               10
 +  FD Files Written:       1,706
 +  SD Files Written:       1,706
 +  FD Bytes Written:       6,359,136 (6.359 MB)
 +  SD Bytes Written:       6,774,314 (6.774 MB)
 +  Rate:                   1589.8 KB/s
 +  Software Compression:   65.5 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      8
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      39,585,635 (39.58 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 19:50 bacula-dir JobId 8: Begin pruning Jobs older than 6 months .
 +11-Mai 19:50 bacula-dir JobId 8: No Jobs found to prune.
 +11-Mai 19:50 bacula-dir JobId 8: Begin pruning Files.
 +11-Mai 19:50 bacula-dir JobId 8: No Files found to prune.
 +11-Mai 19:50 bacula-dir JobId 8: End auto prune.
 +
 +*
 +</sxh>
 +
 +Aqui nós tivemos uma compactação de 65.5% e a nossa flag de criptografia está como yes :D
 +
 +
 +====== Configuração de um Cliente FreeBSD 9.1 ======
 +
 +A minha configuração do <nowiki>FreeBSD</nowiki> 9.1 está como em http://wiki.douglasqsantos.com.br/doku.php/instalacao_e_configuracao_inicial_do_freebsd_9.0_pt_br para que não tenha nenhum problema pelos menos confira o processo da sua instalação
 +
 +Vamos procurar o ports do nosso bacula
 +
 +Vamos acessar o nosso ports
 +<sxh bash>
 +cd /usr/ports
 +</sxh>
 +
 +Agora vamos pesquisar o bacula-client
 +<sxh bash>
 +make search key=bacula-client
 +[...]
 +Port: bacula-client-5.2.12
 +Path: /usr/ports/sysutils/bacula-client
 +Info: Network backup solution (client)
 +Maint:  dan@langille.org
 +B-deps: gettext-0.18.1.1_1 libiconv-1.14_1
 +R-deps: gettext-0.18.1.1_1 libiconv-1.14_1
 +WWW:  http://www.bacula.org/
 +[...]
 +</sxh>
 +
 +Agora vamos acessar o nosso ports
 +<sxh bash>
 +cd /usr/ports/sysutils/bacula-client
 +</sxh>
 +
 +Agora vamos compilar ele
 +<sxh bash>
 +make && make install clean
 +</sxh>
 +
 +Deixe as opções de compilações como default
 +
 +Agora vamos ajustar o /etc/hosts do cliente
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1       localhost
 +192.168.0.84    freebsd.douglasqsantos.com.br     freebsd
 +192.168.0.80    bacula.douglasqsantos.com.br      bacula
 +[...]
 +</sxh>
 +
 +Agora vamos consultar o parâmetro para colocar o bacula-fd na inicialização do sistema
 +<sxh bash>
 +/usr/local/etc/rc.d/bacula-fd rcvar
 +# bacula_fd
 +#
 +bacula_fd_enable="NO"
 +#   (default: "")
 +</sxh>
 +
 +Vamos colocar ele na inicialização do sistema
 +<sxh bash>
 +echo 'bacula_fd_enable="YES"' >> /etc/rc.conf
 +</sxh>
 +
 +No <nowiki>FreeBSD</nowiki> os arquivos de configuração do bacula ficam em /usr/local/etc
 +<sxh bash>
 +cd /usr/local/etc
 +</sxh>
 +
 +Vamos criar o diretório para armazenar as chaves
 +<sxh bash>
 +mkdir -p /usr/local/etc/bacula/keys
 +</sxh>
 +
 +Agora vamos utilizar os arquivos de exemplo do bacula
 +<sxh bash>
 +cp bacula-fd.conf.sample bacula-fd.conf
 +cp bconsole.conf.sample bconsole.conf
 +</sxh>
 +
 +Agora vamos configurar o cliente
 +<sxh bash>
 +vim /usr/local/etc/bacula-fd.conf
 +#
 +# Default  Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.12 (12 September 2012) -- freebsd 9.1-RELEASE-p3
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name to
 +#
 +
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir
 +  Password = "pRXNyJE0As8z4LHTggYEH19zTo8GRoZEZUeQtYYK5NpF"
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon
 +  Password = "RQfVIdPfqleAwPxTyF0Fiu1R85BUHF43KQKV+/rk9+JW"
 +  Monitor = yes
 +}
 +
 +#
 +# "Global" File daemon configuration specifications
 +#
 +FileDaemon {                          # this is me
 +  Name = freebsd-fd
 +  FDport = 9102                  # where we listen for the director
 +  WorkingDirectory = /var/db/bacula
 +  Pid Directory = /var/run
 +  Maximum Concurrent Jobs = 20
 +  FDAddress = 0.0.0.0
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "/usr/local/etc/bacula/keys/freebsd-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "/usr/local/etc/bacula/keys/master.cert"    # Arquivo com a chave publica do servidor
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</sxh>
 +
 +Aqui não podemos deixar de mudar em Director o Name para bacula-dir e no segundo Director o Name para bacula-mon e por ultimo em Messages mudar o Name para bacula-dir, depois temos que adicionar as configurações da criptografia, já vamos gerar as chaves.
 +
 +Agora vamos ajustar o arquivo do bconsole que é como vamos conectar no bacula para fazer backup pela linha de comando
 +<sxh bash>
 +vim /usr/local/etc/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 **no servidor bacula** precisamos gerar as chaves para o <nowiki>FreeBSD</nowiki>
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out freebsd-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key freebsd-fd.key -x509 -out freebsd-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:freebsd.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat freebsd-fd.key freebsd-fd.cert > freebsd-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o <nowiki>FreeBSD</nowiki> client
 +<sxh bash>
 +scp freebsd-fd.pem ../master.cert freebsd.douglasqsantos.com.br:/usr/local/etc/bacula/keys/
 +[...]
 +root@freebsd.douglasqsantos.com.br's password: 
 +freebsd-fd.pem
 +master.cert 
 +</sxh>
 +
 +Agora no cliente <nowiki>FreeBSD</nowiki> vamos ajustar as permissões das chaves
 +<sxh bash>
 +chown -R bacula:bacula /usr/local/etc/bacula/keys
 +</sxh>
 +
 +Agora vamos iniciar o serviço do bacula-fd
 +<sxh bash>
 +/usr/local/etc/rc.d/bacula-fd restart
 +</sxh>
 +
 +Agora vamos listar verificar se o bacula está escutando
 +<sxh bash>
 +netstat -na | egrep 9102
 +tcp4            0 *.9102                 *.*                    LISTEN
 +</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 = "BackupFreeBSD"                             # Nome do Job para Backup do Cliente
 +        JobDefs = "DefaultJobs"                           # JObDefs Definido
 +        Client = freebsd-fd                                # Cliente fd
 +}
 +
 +Client {
 +  Name = freebsd-fd                                        # Cliente fd
 +  Address = freebsd.douglasqsantos.com.br                            # Ajustado no /etc/hosts
 +  Password = "pRXNyJE0As8z4LHTggYEH19zTo8GRoZEZUeQtYYK5NpF"     # 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=freebsd-fd 
 +Connecting to Client freebsd-fd at freebsd.douglasqsantos.com.br:9102
 +
 +freebsd-fd Version: 5.2.12 (12 September 2012)  amd64-portbld-freebsd9.1 freebsd 9.1-RELEASE-p3
 +Daemon started 11-May-13 20:12. Jobs: run=0 running=0.
 + Heap: heap=0 smbytes=22,885 max_bytes=23,032 bufs=65 max_bufs=66
 + Sizeof: boffset_t=8 size_t=8 debug=0 trace=0 
 +Running Jobs:
 +Director connected at: 11-May-13 20:15
 +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
 +     5: BackupSqueeze
 +     6: BackupWheezy
 +     7: BackupFreeBSD
 +Select Job resource (1-7): 7
 +Run Backup job
 +JobName:  BackupFreeBSD
 +Level:    Incremental
 +Client:   freebsd-fd
 +FileSet:  Full Set
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 20:14:11
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=9
 +You have messages.
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes  | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |    43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |     6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 | 8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |    61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 | 8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 | 8,546,112 | T         |
 +|     7 | BackupSqueeze  | 2013-05-11 19:38:24 | B    | F        1,490 | 5,780,720 | T         |
 +|     8 | BackupWheezy   | 2013-05-11 19:50:33 | B    | F        1,706 | 6,359,136 | T         |
 +|     9 | BackupFreeBSD  | 2013-05-11 20:14:14 | B    | F          417 |   729,136 | T         |
 ++-------+----------------+---------------------+------+-------+----------+-----------+-----------+
 +</sxh>
 +
 +O backup já foi finalizado agora vamos ver a mensagem do nosso backup
 +<sxh bash>
 +*mes
 +11-Mai 20:14 bacula-dir JobId 9: No prior Full backup Job record found.
 +11-Mai 20:14 bacula-dir JobId 9: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +11-Mai 20:14 bacula-dir JobId 9: Start Backup JobId 9, Job=BackupFreeBSD.2013-05-11_20.14.12_19
 +11-Mai 20:14 bacula-dir JobId 9: Using Device "FileStorage" to write.
 +11-Mai 20:14 bacula-sd JobId 9: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 20:14 bacula-sd JobId 9: Ready to append to end of Volume "volume0001" size=39585635
 +11-Mai 20:15 freebsd-fd JobId 9:      Could not stat "/etc/bacula/": ERR=No such file or directory
 +11-Mai 20:14 bacula-sd JobId 9: Elapsed time=00:00:02, Transfer rate=448.7 K Bytes/second
 +11-Mai 20:14 bacula-dir JobId 9: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  9
 +  Job:                    BackupFreeBSD.2013-05-11_20.14.12_19
 +  Backup Level:           Full (upgraded from Incremental)
 +  Client:                 "freebsd-fd" 5.2.12 (12Sep12) amd64-portbld-freebsd9.1,freebsd,9.1-RELEASE-p3
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 20:14:11
 +  Start time:             11-Mai-2013 20:14:14
 +  End time:               11-Mai-2013 20:14:16
 +  Elapsed time:           2 secs
 +  Priority:               10
 +  FD Files Written:       417
 +  SD Files Written:       417
 +  FD Bytes Written:       729,136 (729.1 KB)
 +  SD Bytes Written:       897,504 (897.5 KB)
 +  Rate:                   364.6 KB/s
 +  Software Compression:   58.3 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      9
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      40,512,041 (40.51 MB)
 +  Non-fatal FD errors:    1
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK -- with warnings
 +
 +11-Mai 20:14 bacula-dir JobId 9: Begin pruning Jobs older than 6 months .
 +11-Mai 20:14 bacula-dir JobId 9: No Jobs found to prune.
 +11-Mai 20:14 bacula-dir JobId 9: Begin pruning Files.
 +11-Mai 20:14 bacula-dir JobId 9: No Files found to prune.
 +11-Mai 20:14 bacula-dir JobId 9: End auto prune.
 +</sxh>
 +
 +Aqui nós tivemos uma compactação de 58.3% e a nossa flag de criptografia está como yes :D Note que neste backup tivemos um warn pois o FileSet que estou utilizando faz backup do /etc/bacula e no freebsd o bacula fica em /usr/local/etc
 +
 +====== Configuração de um Cliente OpenBSD 5.3 ======
 +
 +A minha configuração do <nowiki>OpenBSD</nowiki> 5.3 está como em http://wiki.douglasqsantos.com.br/doku.php/confinicialopenbsd56_en para que não tenha nenhum problema pelos menos confira o processo da sua instalação
 +
 +Vamos instalar o bacula com o pkg_add
 +
 +<sxh bash>
 +pkg_add -r bacula-client
 +</sxh>
 +
 +Deixe as opções de compilações como default
 +
 +Agora vamos ajustar o /etc/hosts do cliente
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1       localhost
 +192.168.0.85    openbsd.douglasqsantos.com.br     openbsd
 +192.168.0.80    bacula.douglasqsantos.com.br      bacula
 +[...]
 +</sxh>
 +
 +Vamos colocar ele na inicialização do sistema
 +<sxh bash>
 +vim /etc/rc.conf
 +[...]
 +pkg_scripts="bacula_fd"
 +[...]
 +</sxh>
 +
 +
 +Vamos criar o diretório para armazenar as chaves
 +<sxh bash>
 +mkdir -p /etc/bacula/keys
 +</sxh>
 +
 +Vamos fazer um backup dos arquivos de configuração do Bacula
 +<sxh bash>
 +mkdir /usr/src/olds
 +cp -Rp /etc/bacula /usr/local/olds
 +</sxh>
 +
 +Agora vamos configurar o cliente
 +<sxh bash>
 +vim /usr/local/etc/bacula-fd.conf
 +#
 +# Default  Bacula File Daemon Configuration file
 +#
 +#  For Bacula release 5.2.12 (12 September 2012) -- openbsd 5.3
 +#
 +# There is not much to change here except perhaps the
 +# File daemon Name to
 +#
 +
 +#
 +# List Directors who are permitted to contact this File daemon
 +#
 +Director {
 +  Name = bacula-dir
 +  Password = "4r2yU39x4jV2VypEJWiHiulET1DgwgMvS8EdoT2PjdDP"
 +}
 +
 +#
 +# Restricted Director, used by tray-monitor to get the
 +#   status of the file daemon
 +#
 +Director {
 +  Name = bacula-mon
 +  Password = "zKEsmzbGu1k6dIjZloS8v/r8edqmfc1P0NGlOQXs3kUt"
 +  Monitor = yes
 +}
 +
 +#
 +# "Global" File daemon configuration specifications
 +#
 +FileDaemon {                          # this is me
 +  Name = openbsd-fd
 +  FDport = 9102                  # where we listen for the director
 +  WorkingDirectory = /var/bacula
 +  Pid Directory = /var/run
 +  Maximum Concurrent Jobs = 20
 +  FDAddress = 0.0.0.0
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "/etc/bacula/keys/openbsd-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "/etc/bacula/keys/master.cert"    # Arquivo com a chave publica do servidor
 +}
 +
 +# Send all messages except skipped files back to Director
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored
 +}
 +</sxh>
 +
 +Aqui no <nowiki>OpenBSD</nowiki> vem por padrão os Names como bacula-dir, bacula-mon e bacula-fd aqui precisamos so mudar o bacula-fd para openbsd-fd, depois temos que adicionar as configurações da criptografia, já vamos gerar as chaves.
 +
 +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 **no servidor bacula** precisamos gerar as chaves para o <nowiki>OpenBSD</nowiki>
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out openbsd-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key openbsd-fd.key -x509 -out openbsd-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:openbsd.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat openbsd-fd.key openbsd-fd.cert > openbsd-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o <nowiki>OpenBSD</nowiki> client
 +<sxh bash>
 +scp openbsd-fd.pem ../master.cert openbsd.douglasqsantos.com.br:/etc/bacula/keys/
 +[...]
 +root@openbsd.douglasqsantos.com.br's password: 
 +openbsd-fd.pem
 +master.cert 
 +</sxh>
 +
 +Agora no cliente <nowiki>OpenBSD</nowiki> vamos ajustar as permissões das chaves
 +<sxh bash>
 +chown -R root:_bacula /etc/bacula/keys
 +</sxh>
 +
 +Agora vamos iniciar o serviço do bacula-fd
 +<sxh bash>
 +/etc/rc.d/bacula_fd restart
 +</sxh>
 +
 +Agora vamos listar verificar se o bacula está escutando
 +<sxh bash>
 +netstat -na | egrep 9102
 +tcp            0 *.9102                 *.*                    LISTEN
 +</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 = "BackupOpenBSD"                             # Nome do Job para Backup do Cliente
 +        JobDefs = "DefaultJobs"                           # JObDefs Definido
 +        Client = openbsd-fd                                # Cliente fd
 +}
 +
 +Client {
 +  Name = openbsd-fd                                        # Cliente fd
 +  Address = openbsd.douglasqsantos.com.br                            # Ajustado no /etc/hosts
 +  Password = "4r2yU39x4jV2VypEJWiHiulET1DgwgMvS8EdoT2PjdDP"     # 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=openbsd-fd 
 +Connecting to Client openbsd-fd at openbsd.douglasqsantos.com.br:9102
 +
 +openbsd-fd Version: 5.2.12 (12 September 2012)  x86_64-unknown-openbsd5.3 openbsd 5.3
 +Daemon started 11-May-13 17:53. Jobs: run=0 running=0.
 + Heap: heap=0 smbytes=15,230 max_bytes=15,377 bufs=60 max_bufs=61
 + Sizeof: boffset_t=8 size_t=8 debug=0 trace=0 
 +Running Jobs:
 +Director connected at: 11-May-13 17:55
 +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
 +     5: BackupSqueeze
 +     6: BackupWheezy
 +     7: BackupFreeBSD
 +     8: BackupOpenBSD
 +Select Job resource (1-8): 8
 +Run Backup job
 +JobName:  BackupOpenBSD
 +Level:    Incremental
 +Client:   openbsd-fd
 +FileSet:  Full Set
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 20:55:56
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=10
 +You have messages.
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes   | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |     43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |      6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 |  8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |     61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 |  8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 |  8,546,112 | T         |
 +|     7 | BackupSqueeze  | 2013-05-11 19:38:24 | B    | F        1,490 |  5,780,720 | T         |
 +|     8 | BackupWheezy   | 2013-05-11 19:50:33 | B    | F        1,706 |  6,359,136 | T         |
 +|     9 | BackupFreeBSD  | 2013-05-11 20:14:14 | B    | F          417 |    729,136 | T         |
 +|    10 | BackupOpenBSD  | 2013-05-11 20:55:59 | B    | F          408 | 13,669,424 | T         |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +</sxh>
 +
 +O backup já foi finalizado agora vamos ver a mensagem do nosso backup
 +<sxh bash>
 +*mes
 +11-Mai 20:55 bacula-dir JobId 10: No prior Full backup Job record found.
 +11-Mai 20:55 bacula-dir JobId 10: No prior or suitable Full backup found in catalog. Doing FULL backup.
 +11-Mai 20:55 bacula-dir JobId 10: Start Backup JobId 10, Job=BackupOpenBSD.2013-05-11_20.55.57_22
 +11-Mai 20:55 bacula-dir JobId 10: Using Device "FileStorage" to write.
 +11-Mai 20:55 bacula-sd JobId 10: Volume "volume0001" previously written, moving to end of data.
 +11-Mai 20:55 bacula-sd JobId 10: Ready to append to end of Volume "volume0001" size=40512041
 +11-Mai 20:56 bacula-sd JobId 10: Elapsed time=00:00:03, Transfer rate=4.607 M Bytes/second
 +11-Mai 20:56 bacula-dir JobId 10: Bacula bacula-dir 5.2.13 (19Jan13):
 +  Build OS:               x86_64-unknown-linux-gnu redhat 
 +  JobId:                  10
 +  Job:                    BackupOpenBSD.2013-05-11_20.55.57_22
 +  Backup Level:           Full (upgraded from Incremental)
 +  Client:                 "openbsd-fd" 5.2.12 (12Sep12) x86_64-unknown-openbsd5.3,openbsd,5.3
 +  FileSet:                "Full Set" 2013-05-11 17:59:22
 +  Pool:                   "File" (From Job resource)
 +  Catalog:                "Catalogo" (From Client resource)
 +  Storage:                "File" (From Job resource)
 +  Scheduled time:         11-Mai-2013 20:55:56
 +  Start time:             11-Mai-2013 20:55:59
 +  End time:               11-Mai-2013 20:56:02
 +  Elapsed time:           3 secs
 +  Priority:               10
 +  FD Files Written:       408
 +  SD Files Written:       408
 +  FD Bytes Written:       13,669,424 (13.66 MB)
 +  SD Bytes Written:       13,821,260 (13.82 MB)
 +  Rate:                   4556.5 KB/s
 +  Software Compression:   18.2 %
 +  VSS:                    no
 +  Encryption:             yes
 +  Accurate:               no
 +  Volume name(s):         volume0001
 +  Volume Session Id:      10
 +  Volume Session Time:    1368305134
 +  Last Volume Bytes:      54,369,283 (54.36 MB)
 +  Non-fatal FD errors:    0
 +  SD Errors:              0
 +  FD termination status:  OK
 +  SD termination status:  OK
 +  Termination:            Backup OK
 +
 +11-Mai 20:56 bacula-dir JobId 10: Begin pruning Jobs older than 6 months .
 +11-Mai 20:56 bacula-dir JobId 10: No Jobs found to prune.
 +11-Mai 20:56 bacula-dir JobId 10: Begin pruning Files.
 +11-Mai 20:56 bacula-dir JobId 10: No Files found to prune.
 +11-Mai 20:56 bacula-dir JobId 10: End auto prune.
 +</sxh>
 +
 +Aqui nós tivemos uma compactação de 18.2% e a nossa flag de criptografia está como yes :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 criar um diretório chamado keys em c:\Windows\%<nowiki>ProgramFiles</nowiki>%\Bacula\
 +<sxh bash>
 +mkdir "%ProgramFiles%\Bacula\keys"
 +</sxh>
 +
 +Agora vamos deixar o backup-fd.conf da seguinte forma
 +<sxh bash>
 +notepad "%ProgramFiles%\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 = win2k8R2-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
 +  FDAddress = 0.0.0.0
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "C:\\Program Files\\Bacula\\keys\\win2k8R2-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "C:\\Program Files\\Bacula\\keys\\master.cert"    # Arquivo com a chave publica do servidor
 +}
 + 
 +#
 +# 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 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 = win2k8R2-fd                                # Cliente fd
 +}
 +
 +Client {
 +  Name = win2k8R2-fd                                        # Cliente fd
 +  Address = win2k8R2.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>
 +
 +Agora **no servidor bacula** precisamos gerar as chaves para o Windows Server 2008 R2
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out win2k8R2-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key win2k8R2-fd.key -x509 -out win2k8R2-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:win2k8R2.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat win2k8R2-fd.key win2k8R2-fd.cert > win2k8R2-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o Windows 2008 R2 isso pode ser feito com o <nowiki>WinSCP</nowiki>
 +
 +Precisamos copiar a chave win2k8R2.pem e master.cert para o diretório keys do bacula
 +
 +Agora precisamos mandar iniciar o serviço Detecção de Serviços Interativos (Interactive Services Detection) esse serviço pode mudar para ser iniciado automáticamente e o serviço do bacula e o serviço  
 +
 +Agora para o bacula conseguir chegar no cliente precisamos liberar a porta 9102 no servidor Windows(Liberar a porta 9102 no Firewall).
 +
 +Agora vamos listar verificar se o bacula está escutando
 +<sxh bash>
 +netstat -na
 +tcp       0.0.0.0:9102                0.0.0.0:                   LISTENING
 +</sxh>
 +
 +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=win2k8R2-fd 
 +Connecting to Client win2k8R2-fd at win2k8R2.douglasqsantos.com.br:9102
 +
 +win2k8r2-fd Version: 5.2.10 (28 June 2012)  VSS Linux Cross-compile Win64
 +Daemon started 11-May-13 21:38. Jobs: run=0 running=0.
 +Microsoft Windows Server 2008 R2 Enterprise Edition Service Pack 1 (build 7601), 64-bit
 + Heap: heap=0 smbytes=17,978 max_bytes=18,125 bufs=65 max_bufs=66
 + Sizeof: boffset_t=8 size_t=8 debug=0 trace=1 
 +Running Jobs:
 +Director connected at: 11-May-13 21:42
 +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
 +     5: BackupSqueeze
 +     6: BackupWheezy
 +     7: BackupFreeBSD
 +     8: BackupOpenBSD
 +     9: BackupWin2008
 +Select Job resource (1-9): 9
 +Run Backup job
 +JobName:  BackupWin2008
 +Level:    Incremental
 +Client:   win2k8R2-fd
 +FileSet:  WindowsFS
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 21:43:16
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=11
 +You have messages.
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes   | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |     43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |      6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 |  8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |     61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 |  8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 |  8,546,112 | T         |
 +|     7 | BackupSqueeze  | 2013-05-11 19:38:24 | B    | F        1,490 |  5,780,720 | T         |
 +|     8 | BackupWheezy   | 2013-05-11 19:50:33 | B    | F        1,706 |  6,359,136 | T         |
 +|     9 | BackupFreeBSD  | 2013-05-11 20:14:14 | B    | F          417 |    729,136 | T         |
 +|    10 | BackupOpenBSD  | 2013-05-11 20:55:59 | B    | F          408 | 13,669,424 | T         |
 +|    11 | BackupWin2008  | 2013-05-11 21:43:20 | B    | F            0 |          0 | R         |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +</sxh>
 +
 +Galera o backup do Windows demora dependendo do que ele tem armazenado e no final vamos ter o mesmo processo do Linux o percentual de compactação e a flag de criptografia
 +
 +====== 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 criar um diretório chamado keys em c:\Windows\%<nowiki>ProgramFiles</nowiki>%\Bacula\
 +<sxh bash>
 +mkdir "%ProgramFiles%\Bacula\keys"
 +</sxh>
 +
 +
 +Agora vamos deixar o backup-fd.conf da seguinte forma
 +<sxh bash>
 +notepad "%ProgramFiles%\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
 +  FDAddress = 0.0.0.0
 +  PKI Signatures = Yes            # Habilita a assinatura dos dados
 +  PKI Encryption = Yes            # Habilita a criptografia dos dados
 +  PKI Keypair = "C:\\Program Files\\Bacula\\keys\\win2k12-fd.pem"    # Arquivo que contem a chave publica e privada
 +  PKI Master Key = "C:\\Program Files\\Bacula\\keys\\master.cert"    # Arquivo com a chave publica do servidor
 +  
 +}
 + 
 +#
 +# 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</nowiki>\Control\Windows\<nowiki>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 = win2k12-fd                                # Cliente fd
 +}
 +
 +Client {
 +  Name = win2k12-fd                                        # Cliente fd
 +  Address = win2k12.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>
 +
 +Agora **no servidor bacula** precisamos gerar as chaves para o Windows 2012
 +<sxh bash>
 +cd /etc/bacula/keys/clientes
 +</sxh>
 +
 +Gerando a key
 +<sxh bash>
 +openssl genrsa -out win2k12-fd.key 2048
 +</sxh>
 +
 +Agora vamos assinar a nossa chave
 +<sxh bash>
 +openssl req -new -key win2k12-fd.key -x509 -out win2k12-fd.cert
 +You are about to be asked to enter information that will be incorporated
 +into your certificate request.
 +What you are about to enter is what is called a Distinguished Name or a DN.
 +There are quite a few fields but you can leave some blank
 +For some fields there will be a default value,
 +If you enter '.', the field will be left blank.
 +-----
 +Country Name (2 letter code) [XX]:BR
 +State or Province Name (full name) []:Parana
 +Locality Name (eg, city) [Default City]:Curitiba
 +Organization Name (eg, company) [Default Company Ltd]:Douglas
 +Organizational Unit Name (eg, section) []:IT
 +Common Name (eg, your name or your server's hostname) []:win2k12.douglasqsantos.com.br
 +Email Address []:douglas@douglasqsantos.com.br
 +</sxh>
 +
 +Agora vamos inserir a .key e a .cert em um arquivo .pem
 +<sxh bash>
 +cat win2k12-fd.key win2k12-fd.cert > win2k12-fd.pem
 +</sxh>
 +
 +Agora vamos copiar as chaves para o Windows 2012 isso pode ser feito com o <nowiki>WinSCP</nowiki>
 +
 +Precisamos copiar a chave win2k12.pem e master.cert para o diretório keys do bacula
 +
 +Agora precisamos mandar iniciar o serviço Detecção de Serviços Interativos (Interactive Services Detection) esse serviço pode mudar para ser iniciado automáticamente e o serviço do bacula e o serviço  
 +
 +Agora para o bacula conseguir chegar no cliente precisamos liberar a porta 9102 no servidor Windows(Liberar a porta 9102 no Firewall).
 +
 +Agora vamos listar verificar se o bacula está escutando
 +<sxh bash>
 +netstat -na
 +tcp       0.0.0.0:9102                0.0.0.0:                   LISTENING
 +</sxh>
 +
 +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=win2012-fd 
 +Connecting to Client win2k12-fd at win2k12.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: 11-May-13 21:52
 +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
 +     5: BackupSqueeze
 +     6: BackupWheezy
 +     7: BackupFreeBSD
 +     8: BackupOpenBSD
 +     9: BackupWin2008
 +     10: BackupWin2012
 +Select Job resource (1-9): 10
 +Run Backup job
 +JobName:  BackupWin2012
 +Level:    Incremental
 +Client:   win2k10-fd
 +FileSet:  WindowsFS
 +Pool:     File (From Job resource)
 +Storage:  File (From Job resource)
 +When:     2013-05-11 21:53:16
 +Priority: 10
 +OK to run? (yes/mod/no): yes
 +Job queued. JobId=11
 +You have messages.
 +</sxh>
 +
 +Agora vamos listar os nosso jobs
 +<sxh bash>
 +*list jobs
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +| jobid | name           | starttime           | type | level | jobfiles | jobbytes   | jobstatus |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +|     1 | BackupCatalogo | 2013-05-11 17:53:14 | B    | F            1 |     43,545 | T         |
 +|     2 | BackupCatalogo | 2013-05-11 17:55:09 | B    | F            1 |      6,949 | T         |
 +|     3 | BackupDirector | 2013-05-11 17:59:24 | B    | F        1,249 |  8,040,840 | T         |
 +|     4 | BackupCatalogo | 2013-05-11 18:12:02 | B    | F            1 |     61,008 | T         |
 +|     5 | BackupDirector | 2013-05-11 18:16:43 | B    | F        1,259 |  8,617,936 | T         |
 +|     6 | BackupCentOS   | 2013-05-11 19:14:25 | B    | F        1,189 |  8,546,112 | T         |
 +|     7 | BackupSqueeze  | 2013-05-11 19:38:24 | B    | F        1,490 |  5,780,720 | T         |
 +|     8 | BackupWheezy   | 2013-05-11 19:50:33 | B    | F        1,706 |  6,359,136 | T         |
 +|     9 | BackupFreeBSD  | 2013-05-11 20:14:14 | B    | F          417 |    729,136 | T         |
 +|    10 | BackupOpenBSD  | 2013-05-11 20:55:59 | B    | F          408 | 13,669,424 | T         |
 +|    11 | BackupWin2008  | 2013-05-11 21:43:20 | B    | F            0 |          0 | R         |
 +|    11 | BackupWin2012  | 2013-05-11 21:53:20 | B    | F            0 |          0 | R         |
 ++-------+----------------+---------------------+------+-------+----------+------------+-----------+
 +</sxh>
 +
 +Galera o backup do Windows demora dependendo do que ele tem armazenado e no final vamos ter o mesmo processo do Linux o percentual de compactação e a flag de criptografia
 +
 +====== Instalando e configurando o Webmin para o Bacula ======
 +
 +Agora vamos instalar o webmin para o gerenciamento do webmin
 +<sxh bash>
 +rpm -Uvh http://ufpr.dl.sourceforge.net/project/webadmin/webmin/1.620/webmin-1.620-1.noarch.rpm
 +</sxh>
 +
 +Agora vamos acessar http://192.168.0.80:10000
 +
 +Vamos ter uma tela como a abaixo.
 +
 +{{:loginwebmin.png?500|}}
 +
 +Aqui precisamor informar o usuário root e a senha do usuário root
 +
 +Aqui nesta tela temos que selecionar Bacula Backup System
 +
 +{{:telaprincipal.png?500|}}
 +
 +Vamos ter o seguinte erro
 +
 +{{:baculabackupsystem.png?700|}}
 +
 +Aqui selecione Module Config
 +
 +Vamos ter a seguinte tela
 +
 +{{:moduleconfigurationbacula.png?500|}}
 +
 +Aqui precisamos informar a senha para o bacula como **senha** se foi seguido o padrão que eu utilizei e em **bacula database server** informe localhost e **save**
 +
 +{{:baculabackupsystemok.png?500|}}
 +
 +Pronto aqui é so administratar o bacula pelo webmin.
 +
 +====== Instalação do Bat para Windows 7 ======
 +
 +
 +Agora vamos instalar em um cliente Windows 7
 +
 +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 no menu iniciar/todos os programas/Bacula/Bat temos a nossa console de administração para o Bacula
 +
 +
 +
 +====== 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
 +  - http://www.bacula.org/en/dev-manual/main/main/Data_Encryption.html