Introdução
O Bacula
-Ferramenta livre open source de backup (GLP3)
-Clientes-multiplataformas
-C/C++ (Alta prtabilidade)
Obs: Suporta qualquer dispositivos de armazenamento, compilado só para Linux e exite para Linux mas é incompatível.
Obs: Suporta qualquer dispositivos de armazenamento, compilado só para Linux e exite para Linux mas é incompatível.
Linux reconheceu drive de fitas ele trabalha normal nele, Linux
em relação drive da um show.
2 software de backup em rede 100% modular
Director- comanda todas operações de backup
Storage daemon- Local onde vou armazenar os arquivos de
backup SD
File daemon – instalar nas maquinas que vou fazer o backup FD
Catalog – é o data base do banco de dados
Console- desktop e web
Posso ter diretor em uma maquina, Storage em outra maquina, cliente em outras maquinas e banco em outra maquina, console em outra maquina instalado em sua estação de trabalho ou notebook.
Regras Implicidas: Director deve ter ao menos instalado
também um file daemon cliente para ele fazer backup dele mesmo em outra maquina
para não correr o risco de perder os dados e catalog.
Portas padrão
Porta diretor: 9101
Clientes :9102
Storage :9103
Cliente diretor para sd Storage Daemon. Vai direto sem passar no diretor.
Cliente diretor para sd Storage Daemon. Vai direto sem passar no diretor.
Um pouco sobre o Bacula:
Instalação da console do bacula
# apt-get install build-essential vim
Agora vamos instalar o MySQL:
# apt-get install mysql-client mysql-common mysql-server-5.1 mysql-server-core-5.1 libmysqld-dev
Eu prefiro usar o vim, para edição, usar o insert para digitar o conteudo.
# apt-get install vim
Baixe a ultima versão do Bacula (nesse caso, é 5.2.6):
# wget http://downloads.sourceforge.net/project/bacula/bacula/5.2.6/bacula-5.2.6.tar.gz
- Vamos descompactar e instalar o Bacula
Para descompactar:
# tar -zxvf bacula-5.2.6.tar.gz
Use o comando abaixo, para verificar os parâmetros:
# ./configure --help
Como estamos usando o MySQL como banco de dados, vamos usar assim:
# ./configure --with-mysql
# make
# make install
Agora, vamos ajustar o serviço do Bacula. Copie o arquivo:
# cp -av /etc/bacula/bacula /etc/init.d/
E vamos ver se está OK:
# invoke-rc.d bacula status
vamos fazer as configuraçoes necessarias
Director {
- Estrutural cliente Servidor;
- Estrutural Modular (Diretor , Client, Database ,Console Administração);
- Compatível com Windows , Linux , Mac e BSD;
- Farta Documentação disponível na Internet e também aqui mesmo no 'Viva o Linux';
- Inúmeros canais de suporte (Listas , fóruns , IRC );
- Permite execuções de scripts , antes/depois do início do job;
- Suporte à maioria dos dispositivos de Storage do mercado, você mesmo pode realizar montagem;
- Infinidade de recursos para a customização de backups.
Bacula suporta linux , UNIX , o Windows , e MAC clientes de backup, e uma variedade de dispositivos de backup profissionais, incluindo biblioteca de fitas . Administradores e operadores podem configurar o sistema através de uma linha de comando , ou interface web; seu back-end é um catálogo de informações armazenadas pela MySQL , postgreSQL ou SQLite .
Instalação da console do bacula
Realizando a Instalação do sistema bacula plataforma Debian
Como vamos compilar a última versão do Bacula, vamos instalar o "build-essential":# apt-get install build-essential vim
Agora vamos instalar o MySQL:
# apt-get install mysql-client mysql-common mysql-server-5.1 mysql-server-core-5.1 libmysqld-dev
Eu prefiro usar o vim, para edição, usar o insert para digitar o conteudo.
# apt-get install vim
Baixe a ultima versão do Bacula (nesse caso, é 5.2.6):
# wget http://downloads.sourceforge.net/project/bacula/bacula/5.2.6/bacula-5.2.6.tar.gz
- Vamos descompactar e instalar o Bacula
Para descompactar:
# tar -zxvf bacula-5.2.6.tar.gz
Use o comando abaixo, para verificar os parâmetros:
# ./configure --help
Como estamos usando o MySQL como banco de dados, vamos usar assim:
# ./configure --with-mysql
# make
# make install
Agora, vamos ajustar o serviço do Bacula. Copie o arquivo:
# cp -av /etc/bacula/bacula /etc/init.d/
E vamos ver se está OK:
# invoke-rc.d bacula status
bacula-sd is stopped
bacula-fd is stopped
bacula-dir is stopped
Você pode ainda realziar manualmente como :
/var/init.d service bacula-director restart
Bacula já esta instaladovamos fazer as configuraçoes necessarias
Configurando o Bacula
Apos a instalação, vamos configurar o Bacula para efetuar nosso 1º Backup.
Vamos ao diretório do Bacula:
# cd /etc/bacula
Vamos criar e ajudar a base de dados. Use os comandos:
# ./create_bacula_database -u root -p
# ./make_bacula_tables -u root -p
# ./grant_bacula_privileges -u root -p
Onde:
Agora, vamos ajustar as configurações para o Bacula efetuar o 1º Backup.
Efetue o Backup do arquivo do "bacula-dir.conf":
# cp -av bacula-dir.conf bacula-dir.conf.bkp
Vamos adicionar um Job no "bacula-dir.conf", deixe exatamente assim:
# cat /etc/bacula/bacula-dir.conf
Vamos ao diretório do Bacula:
# cd /etc/bacula
Vamos criar e ajudar a base de dados. Use os comandos:
# ./create_bacula_database -u root -p
# ./make_bacula_tables -u root -p
# ./grant_bacula_privileges -u root -p
Onde:
- -u : Informa o usuário do banco;
- root : É o usuário;
- -p : É a senha que vai solicitar.
Agora, vamos ajustar as configurações para o Bacula efetuar o 1º Backup.
Efetue o Backup do arquivo do "bacula-dir.conf":
# cp -av bacula-dir.conf bacula-dir.conf.bkp
Vamos adicionar um Job no "bacula-dir.conf", deixe exatamente assim:
# cat /etc/bacula/bacula-dir.conf
editando o arquivo de configuração
Configurando o Bacula
Apos a instalação, vamos configurar o Bacula para efetuar nosso 1º Backup.
Vamos ao diretório do Bacula:
# cd /etc/bacula
Vamos criar e ajudar a base de dados. Use os comandos:
# ./create_bacula_database -u root -p
# ./make_bacula_tables -u root -p
# ./grant_bacula_privileges -u root -p
Onde:
Agora, vamos ajustar as configurações para o Bacula efetuar o 1º Backup.
Efetue o Backup do arquivo do "bacula-dir.conf":
# cp -av bacula-dir.conf bacula-dir.conf.bkp
Vamos adicionar um Job no "bacula-dir.conf", deixe exatamente assim:
# vim /etc/bacula/bacula-dir.conf
Vamos ao diretório do Bacula:
# cd /etc/bacula
Vamos criar e ajudar a base de dados. Use os comandos:
# ./create_bacula_database -u root -p
# ./make_bacula_tables -u root -p
# ./grant_bacula_privileges -u root -p
Onde:
- -u : Informa o usuário do banco;
- root : É o usuário;
- -p : É a senha que vai solicitar.
Agora, vamos ajustar as configurações para o Bacula efetuar o 1º Backup.
Efetue o Backup do arquivo do "bacula-dir.conf":
# cp -av bacula-dir.conf bacula-dir.conf.bkp
Vamos adicionar um Job no "bacula-dir.conf", deixe exatamente assim:
# vim /etc/bacula/bacula-dir.conf
# Nome do Diretor
Name = bacula-
dir
# Porta padrão
DIRport = 9101
# Comando personalizados de consultas
QueryFile =
"/etc/bacula/query.sql"
# Diretório de trabalho do bacula
WorkingDirectory =
"/var/bacula/working"
# Diretório dos processos do Bacula
PidDirectory =
"/var/run"
# Número Máximo de jobs simultâneos
Maximum Concurrent Jobs = 3
# Senha , que também que ser configurado no bconsole.conf
Password =
"SmOarbwn9YUvQY6deguo2I8WH08jQH0eh2PjeC18f/v0"
# Onde vai as messages genéricas do bacula
Messages = Daemon
}
#Include onde fica mais fácil
# um diretorio somente com os conf do clientes do bacula
# como tem vários servidores por questão de organização
#vamos criar uma conf para cada cliente
@|
"sh -c 'cat /etc/bacula/clientes/*.conf'"
# Generic catalog service
Catalog {
Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =
dbname =
"bacula"
; dbuser =
"root"
; dbpassword =
"12345"
}
# Reasonable message delivery -- send most everything to email address
# and to the console
Messages {
Name = Standard
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/bacula/working/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/bacula/working/log"
= all, !skipped
}
Console {
Name = bacula-mon
Password =
"fG0kBPsk3i79XJM4pV2enjGCKZ1wXO7OOXZKNeeseI4k"
CommandACL = status, .status
Agora vamos ver o "bacula-sd". Efetue um Backup do arquivo:
# cp -av bacula-sd.conf bacula-sd.conf.bkp
Eu criei um diretório chamado "backup", onde vamos jogar os Backup do Bacula:
# mkdir /backup
- Como vamos fazer Backup de vários Servidores, iremos criar também, diretórios para cada servidor. Mas, como vamos fazer somente de um Servidor do Bacula, por enquanto vamos criar somente este, e ao longo, vamos criando mais.
Criando o diretório de Backup do Servidor do Bacula:
# mkdir /backup/bacula
E ficou assim:
#vim /etc/bacula/bacula-sd.conf
Eu criei um diretório chamado "backup", onde vamos jogar os Backup do Bacula:
# mkdir /backup
- Como vamos fazer Backup de vários Servidores, iremos criar também, diretórios para cada servidor. Mas, como vamos fazer somente de um Servidor do Bacula, por enquanto vamos criar somente este, e ao longo, vamos criando mais.
Criando o diretório de Backup do Servidor do Bacula:
# mkdir /backup/bacula
E ficou assim:
#vim /etc/bacula/bacula-sd.conf
####################################################################################################
Storage {
Name = bacula-sd
SDPort = 9103
WorkingDirectory =
"/var/bacula/working"
Pid Directory =
"/var/run"
Maximum Concurrent Jobs = 20
}
#
# List Directors who are permitted to contact Storage daemon
#
Director {
Name = bacula-
dir
Password =
"do9uoBD79ZUkx6eAoTLLHSjTzbK5lEq/3lL7BVAXL4Nz"
}
#
# Restricted Director, used by tray-monitor to get the
# status of the storage daemon
#
Director {
Name = bacula-mon
Password =
"rP2btPJoYTRns9BiMe98B1v3VMFItKVCkIgxnbN0POCp"
Monitor =
yes
}
Device {
Name = bacula
Media Type = File
Archive Device =
/backup/bacula
LabelMedia =
yes
;
Random Access = Yes;
AutomaticMount =
yes
;
RemovableMedia = no;
AlwaysOpen = no;
}
Messages {
Name = Standard
director = bacula-
dir
= all
}
#########################################################################################################
Vamos informar onde será armazenado os dados.
Agora, vamos configurar o cliente do Bacula para podemos efetuar nosso 1º Backup.
Efetue o Backup do arquivo:
# cp -av bacula-fd.conf bacula-fd.conf.bkp
#vim bacula-fd.conf
########################################################################
Director {
Name = bacula-
dir
Password =
"UfJ+vunYR0QU5mW5KwxYbuUQTl1aUQy49q+y6ih8W1Kw"
}
#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director {
Name = bacula-mon
Password =
"TPxsyqgOFHaOf1k/yZpUwvSTkuYlOX5mj2FdCbZRwHnq"
Monitor =
yes
}
#
# "Global" File daemon configuration specifications
#
FileDaemon {
# this is me
Name = bacula-fd
FDport = 9102
# where we listen for the director
WorkingDirectory =
/var/bacula/working
Pid Directory =
/var/run
Maximum Concurrent Jobs = 20
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = bacula-
dir
= all, !skipped, !restored
}
############################################################################################################
O "bacula-dir", "bacula-sd" e o "bacula-fd", estão OK.
Vamos criar o "conf" do cliente com o JOB, POOL, SCHEDULE. Como usamos o Include no "bacula-dir.conf", onde o caminho é "/etc/bacula/clientes/", vamos criar um arquivo com o nome de "bacula.conf".
Criando o diretório "clientes":
# mkdir /etc/bacula/clientes
Agora, vamos criar o arquivo do "bacula.conf":
# vim /etc/bacula/clientes/bacula.conf
Neste arquivo vamos criar tudo separado para uma organização dos JOBs,POOL e Agendamento de backups(SCHEDULE)
########################################################################
#JOB
Job {
Name =
"Bacula"
Type = Backup
Level = FULL
Client = bacula-fd
FileSet =
"Bacula"
Schedule =
"Bacula"
Storage = bacula
Messages = Standard
Pool = bacula-diario
Priority = 10
Write Bootstrap =
"/var/bacula/bacula.bsr"
}
#JOB RESTORE
Job {
Name =
"Bacula-Restore"
Type = Restore
Client=bacula-fd
FileSet=
"Bacula"
Storage = bacula
Pool = bacula-diario
Messages = Standard
Where =
/tmp/bacula-restores
}
# FILE SET
FileSet {
Name =
"Bacula"
Include {
Options {
signature = MD5
}
File =
/etc
}
}
#CLIENT
Client {
Name = bacula-fd
Address = 192.168.25.18
FDPort = 9102
Catalog = MyCatalog
Password =
"UfJ+vunYR0QU5mW5KwxYbuUQTl1aUQy49q+y6ih8W1Kw"
File Retention = 30 days
Job Retention = 6 months
AutoPrune =
yes
}
Storage {
Name = bacula
Address = 192.168.25.18
SDPort = 9103
Password =
"do9uoBD79ZUkx6eAoTLLHSjTzbK5lEq/3lL7BVAXL4Nz"
Device = bacula
Media Type = File
}
Schedule {
Name =
"Bacula"
Run = Full sun-sat at 23:10
}
#POOL
Pool {
Name = bacula-diario
Pool Type = Backup
Recycle =
yes
# Bacula can automatically recycle Volumes
AutoPrune =
yes
Volume Retention = 365 days
}
############################################################################################################
Agora vamos reiniciar ou iniciar nosso bacula para efetuar o primeiro backup.
# invoke-rc.d bacula start
Vamos usar o BCONSOLE, um console de gerenciamento do Bacula:
# bconsole
Ao acessar o BCONSOLE, o Shell ficará assim:
######################################################################
Connecting to Director bacula:9101
1000 OK: bacula-dir Version: 5.2.6 (21 February 2012)
Enter a period to cancel a command.
*
#######################################################################
Isso mesmo, com o ' * ' na frente. Usando o comando HELP, você verá as opções.
Vamos ao que interessa, vamos efetuar o Backup. Mas antes, vamos criar o volume e associar a POOL:
Use o comando 'add':
*add
Enter number of Volumes to create. 0=>fixed name. Max=1000:
coloque 0 ( Zero )
Enter Volume name:
Como estaremos efetuando o Backup do próprio Bacula, então o nome pode ser: bacula
É só digitar o comando run no terminal e pronto, ele irá efetuar o Backup.
Como mostra a imagem abaixo:
Próximo post como instalar o webmin com a plataforma o bacula rodando.