Differences

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

Link to this comparison view

instalacao_e_configuracao_do_bacula_server_no_centos6_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalação e Configuração do Bacula Server no CentOS 6 ======
  
 +E ai galera, eu noto que tem muita gente com problemas na instalação do bacula eu mesmo me bati um monte com a estrutura dele até aprender a trabalhar com está ferramenta com isso eu bolei um script para fazer a instalação e configuração dele no CentOS 6.
 +
 +<sxh bash>
 +#!/bin/bash
 +#​-------------------------------------------------------------------------
 +# bacula-postgresql-centos6.sh
 +#
 +# Site  : http://​wiki.douglasqsantos.com.br
 +# Autor : Douglas Q. dos Santos <​douglas.q.santos@gmail.com>​
 +# Manutenção:​ Douglas Q. dos Santos <​douglas.q.santos@gmail.com>​
 +#
 +#​-------------------------------------------------------------------------
 +# Efetua a instalação e configuração do Bacula Server
 +#​-------------------------------------------------------------------------
 +# Histórico:
 +#
 +# Versão 1:
 +# Data: 19/05/2013
 +# Descrição:​ Efetua a instalação e configuração do Bacula Server
 +#​--------------------------------------------------------------------------
 +#Licença: http://​creativecommons.org/​licenses/​by-sa/​3.0/​legalcode
 +#
 +#​--------------------------------------------------------------------------
 +#clear
 +
 +#VARIAVEIS UTILIZADAS NO SCRIPT
 +YUM="/​usr/​bin/​yum"​
 +CAT="/​bin/​cat"​
 +CP="/​bin/​cp"​
 +MKDIR="/​bin/​mkdir"​
 +CHOWN="/​bin/​chown"​
 +SED="/​bin/​sed"​
 +MAKE="/​usr/​bin/​make"​
 +CHMOD="/​bin/​chmod"​
 +CD="​cd"​
 +TAR="/​bin/​tar"​
 +WGET="/​usr/​bin/​wget"​
 +USERADD="/​usr/​sbin/​useradd"​
 +USERMOD="/​usr/​sbin/​usermod"​
 +SU="/​bin/​su"​
 +RPM="/​bin/​rpm"​
 +CHKCONFIG="/​sbin/​chkconfig"​
 +CRIA_DB_BACULA="/​usr/​share/​bacula-director/​make_mysql_tables"​
 +IP=$(ifconfig eth0 | awk '/inet end/ {print $3}')
 +#MUDAR ESSES VALORES PARA ALTERAR A SENHA QUE SERA UTILIZADA PARA O BACULA E PARA O POSTGRESQL
 +BACULA_POSTGRES="​senha"​
 +BACULA_USER="​bacula"​
 +
 +
 +#​ATUALIZANDO REPOSITORIOS E SISTEMA
 +${YUM} update && ${YUM} update -y
 +
 +#PACOTES PARA O BACULA E O POSTGRESQL E WEBMIN
 +PACOTES_POSTGRES="​postgresql postgresql-contrib postgresql-devel postgresql-docs postgresql-libs postgresql-server perl-Class-DBI-Pg"​
 +PACOTES_BACULA="​readline-devel readline-static readline zlib zlib-devel zlib-static libmcrypto-devel openssl-devel"​
 +PACOTES_WEBMIN="​perl-Net-SSLeay perl-Crypt-SSLeay perl-IO-Pty-Easy perl-Authen-PAM perl-ExtUtils-PkgConfig"​
 +
 +#INSTALA PACOTES DO BACULA E POSTGRESQL
 +${YUM} install ${PACOTES_BACULA} -y
 +${YUM} install ${PACOTES_POSTGRES} -y
 +
 +#​INICIALIZANDO O POSTGRESQL
 +${CHKCONFIG} --add postgresql
 +${CHKCONFIG} postgresql on
 +/​etc/​init.d/​postgresql initdb
 +
 +
 +#AJUSTANDO O BANCO PARA RECEBER O BACULA
 +${SED} -i "​s/#​listen_addresses = '​localhost'/​listen_addresses = '​*'/​g"​ /​var/​lib/​pgsql/​data/​postgresql.conf
 +${SED} -i "​s|host ​   all         ​all ​        ::​1/​128 ​              ​ident|host ​   all         ​all ​        ::​1/​128 ​              ​md5|g"​ /​var/​lib/​pgsql/​data/​pg_hba.conf
 +/​etc/​init.d/​postgresql restart
 +
 +#CRIANDO USUARIO BANCO
 +${CAT} << EOF > /​tmp/​base.sql
 +ALTER USER postgres WITH PASSWORD '​${BACULA_POSTGRES}';​
 +CREATE USER bacula WITH PASSWORD '​${BACULA_POSTGRES}';​
 +CREATE DATABASE bacula WITH OWNER bacula ENCODING '​SQL_ASCII'​ TEMPLATE=template0;​
 +EOF
 +
 +
 +#IMPORTANDO BANCO DE DADOS
 +${CD} /tmp
 +${SU} postgres -c 'psql -f /​tmp/​base.sql'​ 2> /dev/null
 +
 +#AJUSTANDO O NOME DA MAQUINA
 +echo "${IP} bacula.douglas.lan bacula"​ >> /etc/hosts
 +
 +
 +# CRIANDO DIRETÓRIOS PARA O BACULA
 +${MKDIR} /​var/​lib/​bacula 2> /dev/null
 +${MKDIR} /​var/​run/​bacula 2> /dev/null
 +${MKDIR} /​var/​log/​bacula 2> /dev/null
 +${MKDIR} -p /​etc/​bacula/​scripts 2> /dev/null
 +${MKDIR} /​etc/​bacula/​clientes 2> /dev/null
 +${MKDIR} -p /srv/backup 2> /dev/null
 +
 +#CRIANDO O USUÁRIO BACULA
 +${USERADD} -s /bin/bash -d /​var/​lib/​bacula ​ bacula
 +
 +#AJUSTANDO AS PERMISSÕES DOS DIRETORIOS UTILIZADOS PELO BACULA
 +${CHOWN} -R bacula:​bacula /​var/​lib/​bacula /​var/​run/​bacula /​var/​log/​bacula /etc/bacula
 +
 +#AGORA VAMOS OBTER O BACULA
 +${CD} /usr/src
 +${WGET} -c http://​wiki.douglasqsantos.com.br/​Downloads/​bacula/​bacula-5.2.13.tar.gz
 +
 +#AGORA VAMOS DESPACOTAR O BACULA
 +${TAR} -xzvf bacula-5.2.13.tar.gz
 +
 +#VAMOS ACESSAR O DIRETÓRIO
 +${CD} bacula-5.2.13/​
 +
 +#AGORA VAMOS PREPARAR O PACOTE
 +CFLAGS="​-g -Wall" ./configure --with-openssl=yes --enable-smartalloc --with-postgresql ​ --with-db-name=bacula --with-db-user=bacula --with-db-password=${BACULA_POSTGRES} --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
 +
 +#AGORA VAMOS COMPILAR ELE E MANDAR INSTALAR
 +${MAKE} && ${MAKE} install && ${MAKE} install-autostart
 +
 +#AGORA VAMOS AJUSTAR AS PERMISSÕES
 +${CHOWN} -R bacula:​bacula /etc/bacula
 +
 +#AGORA VAMOS IMPORTAR O BANCO DE DADOS
 +${SU} - bacula -c '/​etc/​bacula/​scripts/​make_postgresql_tables -U bacula -d bacula'​ > /dev/null
 +
 +#AGORA VAMOS DESATIVAR O BASH DO BACULA
 +usermod -s /bin/false bacula
 +
 +
 +#FAZENDO BACKUP DOS ARQUIVOS
 +${MKDIR} /​usr/​src/​olds
 +${CP} -Rfa /etc/bacula /​usr/​src/​olds/​bacula
 +
 +#​Configurações do bacula
 +echo '############################################​
 +# 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.douglas.lan ​                      # 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 POSTGRES
 +
 +}
 +
 +# 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
 +}
 +' > /​etc/​bacula/​bacula-dir.conf
 +
 +${SED} -i "​s/​SENHA/​${BACULA_POSTGRES}/​g"​ /​etc/​bacula/​bacula-dir.conf
 +
 +echo '###################################################​
 +## 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.douglas.lan
 +# 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.douglas.lan ​                           # Ajustado no /etc/hosts
 +  Password = "​ExgYbEinJWMf7lsWPBcpffZaNMmiGcbgp" ​         # Senha do Director do Bacula
 +  @/​etc/​bacula/​clientes/​basic-client ​ # Arquivo onde contem informacoes sobre o cliente.
 +}
 +## -------------------------------------------------------------------- ##
 +' > /​etc/​bacula/​bacula-dir-clients-and-jobs.conf
 +
 +echo '###################################################​
 +## 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
 +                }
 +# 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:/"​
 +                }
 +}' > /​etc/​bacula/​bacula-dir-filesets.conf
 +
 +echo '#################################################################​
 +## 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
 +}' > /​etc/​bacula/​bacula-dir-agendamento.conf
 +
 +
 +
 +echo '##############################################################​
 +# 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.douglas.lan ​                 # 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
 +}' > /​etc/​bacula/​bacula-sd.conf
 +
 +
 +
 +echo '##############################################################​
 +# ARQUIVO DE CONFIGURACAO DO CLIENTE BACULA
 +##############################################################​
 +
 +#LISTA DE DIRETORES BACULA QUE TERAM ACESSO A ESTE CLIENTE BACULA
 +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
 +}
 +
 +#
 +# RESTRINGINDO QUAIS DIRETORIOS PODEM UTILIZAR O TRY-MONITOR PARA OBTER
 +# ESTATISTICAS DO CLIENTE BACULA
 +Director {
 +  Name = bacula-mon #NOME DO MONITOR
 +  Password = "​z27BNYXA9dx1SZWk1vp-kSZ8azwz2HMS8" ​   # ESTA SENHA E UTILIZADO PELO BACULA-MONITOR
 +  Monitor = yes #HABILITA O MONITORAMENTO
 +}
 +
 +#​CONFIGURACOES GLOBAIS DO CLIENTE BACULA
 +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 ​                    #​FORCA O BACULA CLIENTE ESCUTAR EM QUALQUER INTERFACE
 +#  PKI Signatures = Yes            # HABILITA A ASSINATURA DOS DADOS COPIADOS
 +#  PKI Encryption = Yes            # HABILITA A CRIPTOGRAFIA DOS DADOS
 +#  PKI Keypair = "/​etc/​bacula/​keys/​clients/​bacula-fd.pem" ​   # LOCALIZACAO DO ARQUIVO QUE CONTEM A CHAVE PUBLICA E A PRIVADA
 +#  PKI Master Key = "/​etc/​bacula/​keys/​master.cert" ​   # ARQUIVO QUE CONTEM A CHAVE PUBLICA DO SERVIDOR BACULA
 +}
 +
 +#ENVIA AS TODAS AS MENSAGENS PARA O SERVIDOR BACULA EXCETO SKIPPED E RESTORE
 +Messages {
 +  Name = Standard
 +  director = bacula-dir = all, !skipped, !restored ​       # AS MENSAGEM SAO ENCAMINHADAS PARA O '​BACULA-DIR'​ DEFINIDO NESSA LINHA
 +}' > /​etc/​bacula/​bacula-fd.conf
 +
 +echo '##########################################################​
 +## 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'​ > /​etc/​bacula/​clientes/​basic-client
 +
 +
 +echo '######################################################​
 +# CONFIGURACAO DO BACULA CONSOLE
 +#FERRAMENTA DE ADMINISTRACAO DO BACULA VIA LINHA DE COMANDO
 +#############################################################​
 +
 +Director {
 +  Name = bacula-dir #NOME DO SERVIDOR DIRETOR DO BACULA
 +  DIRport = 9101 #PORTA QUE O DIRETOR DO BACULA ESTA ESCUTANDO
 +  address = bacula #NOME OU ENDERECO IP DO SERVIDOR BACULA
 +  Password = "​Cv70F6pf1t6pBopT4vQOnigDrR0v3L"​ #SENHA DO BACULA-DIR
 +}' > /​etc/​bacula/​bconsole.conf
 +
 +
 +${CHOWN} bacula:tape /srv/backup
 +${CHOWN} -R bacula:​bacula /etc/bacula
 +
 +#COLOCANDO O BACULA NA INICIALIZAÇÃO
 +${CHKCONFIG} --add bacula-dir
 +${CHKCONFIG} bacula-dir on
 +${CHKCONFIG} --add bacula-sd
 +${CHKCONFIG} bacula-sd on
 +${CHKCONFIG} --add bacula-fd
 +${CHKCONFIG} bacula-fd on
 +
 +#​REINICIANDO OS SERVIÇOS DO BACULA
 +/​etc/​init.d/​bacula-dir restart; /​etc/​init.d/​bacula-sd restart; /​etc/​init.d/​bacula-fd restart
 +
 +#OBTENDO O PACOTE DO WEBMIN E INSTALANDO AS SUAS DEPENDENCIAS
 +${RPM} -Uvh http://​prdownloads.sourceforge.net/​webadmin/​webmin-1.630-1.noarch.rpm
 +${YUM} install ${PACOTES_WEBMIN} -y
 +</​sxh>​