De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Alexandro Silva
Data de Publicação: 31 de março de 2010
Agora iremos configurar o Bacula Storage e o File Daemon:
Edite o arquivo /etc/bacula/bacula-sd.conf
Storage { # definition of myself Name = backup-sd SDPort = 9103 # Director's port WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" SDAddress = 123.122.123.123 } # List Directors who are permitted to contact Storage daemon Director { Name = backup-dir Password = "Nlw2vp555z4vep0dasdads" } # Restricted Director, used by tray-monitor to get the # status of the storage daemon Director { Name = backup-mon Password = "Mon/GxVW6dfndasdasdsadasd" Monitor = yes } # Devices supported by this Storage daemon # To connect, the Director's bacula-dir.conf must have the # same Name and MediaType. Device { Name = FileStorage Device Type = File Media Type = File Archive Device = /backup2/storage }
Edite o arquivo /etc/bacula/bacula-fd
# List Directors who are permitted to contact this File daemon Director { Name = "backup-dir" Password = "Nlw2vp555z4vep0viaBpeAsdads" } # Restricted Director, used by tray-monitor to get the # status of the file daemon Director { Name = "backup-mon" Password = "Mon/GxVW6dfnO+EVBPpkdasdsaP" Monitor = yes } # "Global" File daemon configuration specifications FileDaemon { # this is me Name = Server-2-fd FDport = 9102 # where we listen for the director WorkingDirectory = /var/lib/bacula Pid Directory = /var/run/bacula Maximum Concurrent Jobs = 20 FDAddress = 123.123.123.123 Heartbeat Interval = 15 seconds } # Send all messages except skipped files back to Director Messages { Name = Standard director = backup-dir = all, !skipped, !restored
Com todos os arquivos devidamente configurados inicie os serviços
invoke-rc.d bacula-director restart invoke-rc.d bacula-sd restart invoke-rc.d bacula-fd restart
E conecte-se ao Bacula Console:
bconsole Connecting to Director 123.123.123.123:9101 1000 OK: backup-dir Version: 2.4.4 (28 December 2008) Enter a period to cancel a command. *
Aparecendo a tela acima tudo está funcionando perfeitamente. Para obter informações sobre os comandos digite help.
Existe uma gama de ferramentas gráficas para gestão do bacula, posso citar o bacula-console-qt. Para ser sincero eu não utilizo ferramentas gráficas. O Bacula Console me atende muito bem nas tarefas diárias.
Como informei anteriormente, existe uma limitação do Bacula para fazer cópias de segurança de SGBDs porém não recomendo o backup "a quente" das bases. Todos os SGBDs do mercado possuem ferramentas que geram o dump do banco sem afetar a integridade dos dados. Seguem 02 scripts que utilizo para gerar as cópias tanto do Postgresql quanto do MySQL:
MySQL
Este script é de autoria do meu colega Marcelo Dultra, analista de segurança da FTC.
O arquivo de configuração /etc/bkpmysql.cfg contém as infomações necessárias para a realização do backup
Nome do Job:Nome do dump:Diretório destino:Usuário do banco:senha:Arquivo log:email envio alerta
Esse é o script
#!/bin/bash # # Definicao de Variaveis # arqcontrole='/etc/bkpmysql.cfg' if [ -z "${arqcontrole}" ] then echo "${0} - Erro Fatal: Arquivo de Configuracao nao existe!" exit 1 fi titbkp=`cat ${arqcontrole}|cut -d: -f1` arqbkp=`cat ${arqcontrole}|cut -d: -f2` adibkp=`cat ${arqcontrole}|cut -d: -f3` usebkp=`cat ${arqcontrole}|cut -d: -f4` senbkp=`cat ${arqcontrole}|cut -d: -f5` logbkp=`cat ${arqcontrole}|cut -d: -f6` usrbkp=`cat ${arqcontrole}|cut -d: -f7` dia=`date '+%u'` msg_erro() { echo "ATENCAO ADMINISTRADOR! " > /tmp/bkpmysql.msg echo "Erro no Backup da Base de Dados Horde - ${serbkp}!" >> /tmp/bkpmysql.msg echo ${msg} >> /tmp/bkpmysql.msg mail ${usrbkp} -s "${serbkp} - Erro Backup DB Horde" </tmp/bkpmysql.msg } echo "`date '+%d/%m/%y - %H:%M:%S -'` INICIO DA ROTINA" > ${logbkp} case ${dia} in 1) sem="Segunda";; 2) sem="Terca";; 3) sem="Quarta";; 4) sem="Quinta";; 5) sem="Sexta";; 6) sem="Sabado";; 7) sem="Domingo";; *) msg="Dia da Semana nao definido" msg_erro echo "`date '+%d/%m/%y - %H:%M:%S -'` Erro! Dia da Semana Invalido!" >> ${logbkp} exit 1 esac if [ -z "${titbkp}" -o -z "${arqbkp}" -o -z "${adibkp}" -o -z "${usebkp}" -o -z "${senbkp}" -o -z "${logbkp}" -o -z "${usrbkp}" -o -z "${sem}" ] then echo "`date '+%d/%m/%y - %H:%M:%S -'` Parametros Invalidos!" >> ${logbkp} msg="`date '+%d/%m/%y - %H:%M:%S -'` Parametros Invalidos!" msg_erro exit 1 fi cd ${adibkp} echo "`date '+%d/%m/%y - %H:%M:%S -'` Gerando dump do banco ..." >> ${logbkp} mysqldump -u ${usebkp} -p${senbkp} --add-locks --add-drop-table --all-databases --flush-logs --disable-keys --result-file=${arqbkp}.${sem} 2>> ${logbkp} if [ ${?} -eq 0 ] then echo "`date '+%d/%m/%y - %H:%M:%S -'` Dump Gerado!" >> ${logbkp} else echo "`date '+%d/%m/%y - %H:%M:%S -'` Erro na realizacao do Backup!" >> ${logbkp} msg="`date '+%d/%m/%y - %H:%M:%S -'` Erro na realizacao do Backup!" msg_erro exit 1 fi echo "`date '+%d/%m/%y - %H:%M:%S -'` Compactando arquivo do dump ..." >> ${logbkp} gzip -f ${arqbkp}.${sem} if [ ${?} -eq 0 ] then echo "`date '+%d/%m/%y - %H:%M:%S -'` Arquivo Compactado!" >> ${logbkp} else echo "`date '+%d/%m/%y - %H:%M:%S -'` Erro na compactacao!" >> ${logbkp} msg="`date '+%d/%m/%y - %H:%M:%S -'` Erro na compactacao!!" msg_erro exit 1 fi echo "`date '+%d/%m/%y - %H:%M:%S -'` FIM DA ROTINA DE BACKUP ..." >> ${logbkp} exit
#!/bin/bash DATE=`date +"%Y-%m-%d"` HOSTNAME=`hostname` DIR=/var/bkpdb d=rtdb su postgres -c "pg_dump $d | gzip -c > $DIR/$d.$HOSTNAME.$DATE.out.gz"
A Colivre utiliza o Bacula para fazer o backup de cerca de 8 servidores espalhados pelo globo. A política adotada é de cópias Full todos os domingos e cópias diferenciais de segunda a sábado.
Num teste de restore realizado semanalmente, foram restaurados cerca de 8 GB em 2 min. isso porque os servidores estavam na mesma rede. Já o restore de um servidor remoto com o mesmo tamanho de arquivo levou cerca de 10 min.
Os arquivos (volumes) são gravados em 03 storages (partições) diferentes, com a reciclagem eles ocupam menos de 40% dos discos.
Alcançamos esse nível de gerenciamento de backup com muito estudo, paciência e análise. Levando cerca de 15 dias, periodo de 20/12 a 03/01, para deixar a rotina redonda, só é preciso monitorar diariamente os logs e de vez em quando fazer uma intervenção.
O Bacula tem se mostrado uma ferramenta madura, escalável, segura e confiável tranquilizando minhas poucas noites de sono.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários