Nesse tutorial tentarei ensinar a instalação de um servidor Debian com o Bacula, fazendo backup e restore da própria máquina.
Posteriormente mostrarei como configurar os clientes em máquinas, Ubuntu e Windows XP e 7.
Instalação das dependências no Debian:
- apt-get install build-essential vim
- apt-get install mysql-client mysql-common mysql-server-5.1 mysql-server-core-5.1 libmysqld-dev
Instalação das dependências no CentOS:
- yum groupinstall 'Development Tools'
- yum install mysql mysql-devel mysql-server
Baixe a última versão do Bacula (nesse caso, é 5.2.6):
Instalação do Bacula
- tar -zxvf bacula-5.2.6.tar.gz
- ./configure --with-mysql
- make
- make install
- cp /etc/bacula/bacula /etc/init.d
- invoke-rc.d bacula status
Criando o banco MySQL
- ./create_bacula_database -u root -p
- ./make_bacula_tables -u root -p
- ./grant_bacula_privileges -u root -p
No fim de cada comando você deverá informar a senha de root do servidor MySQL.
Arquivos de configuração do Bacula
- bacula-dir.conf
- bacula-sd.conf
- bacula-fd.conf
Configurando o Client
Director {
Name = bacula-dir
Password = "bacula"
}
Director {
Name = bacula-mon
Password = "bacula"
Monitor = yes
}
FileDaemon {
Name = bacula-fd
FDport = 9102
WorkingDirectory = /var/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}
Configurando o Storaged
Storage {
Name = bacula-sd
SDPort = 9103
WorkingDirectory = "/var/bacula/working"
Pid Directory = "/var/run"
Maximum Concurrent Jobs = 20
}
Director {
Name = bacula-dir
Password = "bacula"
}
Director {
Name = bacula-mon
Password = "esmaltec"
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
}
Configurando o Director
Director {
Name = bacula-dir
DIRport = 9101
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/bacula/working"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 3
Password = "bacula"
Messages = Daemon
}
Catalog {
Name = MyCatalog
dbname = "bacula"; dbuser = "root"; dbpassword = "root"
}
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
}
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 = "bacula"
CommandACL = status, .status
}
Job {
Name = "Backup"
Type = Backup
Level = FULL
Client = bacula-fd
FileSet = "bacula"
Schedule = "bacula"
Storage = bacula
Messages = Standard
Pool = bacula
Priority = 10
Write Bootstrap = "/var/bacula/bacula.bsr"
}
Job {
Name = "Restore"
Type = Restore
Client=bacula-fd
FileSet="bacula"
Storage = bacula
Pool = bacula
Messages = Standard
Where = /bacula/restore
}
FileSet {
Name = "bacula"
Include {
Options {
signature = MD5
}
File = /etc
File = /home
}
}
Client {
Name = bacula-fd
Address = 192.168.0.10
FDPort = 9102
Catalog = MyCatalog
Password = "bacula"
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}
Storage {
Name = bacula
Address = 192.168.0.5
SDPort = 9103
Password = "esmaltec"
Device = bacula
Media Type = File
}
Schedule {
Name = "bacula"
Run = Full sun-sat at 23:10
}
Pool {
Name = bacula
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 365 days
}
Reinicie o serviço do bacula.
Executando o primeiro backup
Para rodar o backup é necessário criar o pool de onde os dados serão salvos, execute os comandos baixo:
- bconsole
Você entrar na console de administração do bacula, digite help para visualizar todos os comando que são suportados
- add
Comando para criar o pool, serão feitas duas perguntas o tamanho e o nome do pool, responda 0 para a primeira pergunta e o nome que desejar para a segunda.
- run
Comando para rodar o backup, aparecerão duas opções de jobs, pois são as que criamos no director. Escolha a referente ao backup e confirme a execução do backup.
Executando o restore
Entre na console de administração do bacula e execute o comando:
- restore
A seguinte lista será mostrada:
To select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Primeiramente você escolherá a opção de número 1 para ver o JobId dos backup que você acabou de executar. Agora escolha a opção de número 12 e informe o JobId do backup. Isso será mostrado a você:
You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.
cwd is: /
$
Este é um outro console, nele você pode listar e navegar os diretórios que você foram "backpeados" com os comandos cd, ls, etc. Seu backup contém duas pasta, "etc" e "home", iremos escolher a pasta home para restaurar, o comando para isso é:
- mark home/
Para finalizar digite:
- done
Confirme a execução do restore, com isso os dados serão restaurados dentro da pasta que você informou no director.
Essa é a configuração básica para o funcionamento do Bacula.
Nenhum comentário:
Postar um comentário