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.

#!/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