Bacula com restore automático.

722 views
Skip to first unread message
Assigned to informa...@gmail.com by me

Danilo Neves

unread,
Sep 26, 2012, 1:50:42 PM9/26/12
to bacula-ba...@googlegroups.com
Boa tarde Senhores.
Tenho um servidor fazendo backup corretamente e restaurando os arquivos perfeitamente.
Mas quero saber se tem como eu agendar horário de restauração do ultimo backup.
Quero fazer um restore full em determinada pasta e em determinado horário.
Tem como fazer esse restore automatico, sem ser manualmente?

Luis H. Forchesatto

unread,
Sep 26, 2012, 4:31:09 PM9/26/12
to bacula-ba...@googlegroups.com

Da mesma forma que você configura o backup você configura o restore:

Job {
    Name = "RestoreFiles"
    Client = xxxxx
    Type = Restore
    FileSet = "SeuFileset"
    Storage = File
    Pool = Default
    Messages = Standard
    Where = /alguma/pasta/qualquer
}




--
Você está recebendo esta mensagem porque se inscreveu no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-p...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/bacula-backup-pt-br?hl=pt-BR.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/bacula-backup-pt-br/-/O39a7ZKTuV0J.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Att.

Danilo Bondezan

unread,
Sep 26, 2012, 4:35:39 PM9/26/12
to bacula-ba...@googlegroups.com
e não esquece do agendamento 
Danilo Bondezan
Analista de Suporte

Danilo Neves

unread,
Sep 26, 2012, 5:15:51 PM9/26/12
to bacula-ba...@googlegroups.com
Pois é...eu fiz isso mas mesmo assim da erro.

#JOB RESTORE
Job {
Name = "Bacula-Restore"
Type = Restore
Client= bacula-fd
FileSet= "backup-linux"
Schedule = "restore-danilo"
Storage = bacula
Pool = bacula-diario
Messages = Standard
Where = /tmp/bacula-restores
Bootstrap = "/home/bacula/server-01_new.bsr"
}

Schedule {
Name = "restore-danilo"
Run = Full sun-sat at 17:55
}

Vi uma alternativa de usar RunAfterJob para chamar um script e dentro do script fazer o restore.
Mas se tiver jeito configurar o restore como um backup seria muito mais simples.
Tem algum exemplo em produção?
Lembrando que tem que fazer o restore sem qualquer intervenção minha :D.

Ana Emília

unread,
Sep 27, 2012, 4:04:37 PM9/27/12
to bacula-ba...@googlegroups.com
Oi Danilo,

Eu fiz um teste aqui com meu bacula e funcionou, mesmo o manual dizendo que não é possível: "Restore jobs cannot be automatically started by the scheduler as is the case for Backup, Verify and Admin jobs. To restore files, you must use the restore command in the console."

 Acho que serve para o que você quer, porque pelo que entendi, ele usa o bootstrap file para recuperar tudo do último backup registrado nesse bsr. Não é tão flexível quanto o restore manual, porque você não pode escolher os arquivos, o fileset é totalmente ignorado...

Você poderia postar aqui o erro? Vou colar aqui o job restore que configurei e funcionou. Aparentemente sua configuração está correta. O que pode ocorrer é seu bootstrap file não existir, confirmar seu file daemon, storage daemon, etc.

#######################################################
#
# Job for Restore Files
#
#######################################################
Job {
    Name = "RestoreFiles"
    Type = Restore
    Client = client1-fd
    FileSet = "RestoreFileSet" # esse fileset foi totalmente ignorado
    Storage = mytape-sd
    Where = /home/restore # esse diretório tem que existir...
    Messages = Standard
    Pool = Fitas
    Schedule = "CicloRestore"
    Bootstrap = "/opt/bacula/bin/working/backup-client1.bsr" # esse .bsr contém os dados do último backup executado e do qual vão ser extraídas as informações para o restore
    Write Bootstrap = "/opt/bacula/bin/working/restore.bsr" # nos meus testes, esse arquivo não foi gerado...
}


########################################################
#
# FileSet for Restore files
#
########################################################
FileSet {
  Name = "RestoreFileSet"
  Include {
          Options {
                  signature = MD5
          }
          File = /opt/bacula/conf.d
  }
}

######################################################
#
# Schedule for job RestoreFiles
#
######################################################
Schedule {
  Name = "CicloRestore"
  Run  = Level=Full sep 27 at 16:46
Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.



--
Att.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Danilo Bondezan
Analista de Suporte

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.

Danilo Neves

unread,
Sep 28, 2012, 7:48:05 AM9/28/12
to bacula-ba...@googlegroups.com
Graannnndeeee Ana.
O problema era que eu não tinha colocado o bootstrap correto no Job do restore.
Coloquei o bootstrap correto gerado pelo job do backup e funcionou.
Obrigado e grande abraço.

Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-p...@googlegroups.com.

Ana Emília

unread,
Sep 28, 2012, 8:46:29 AM9/28/12
to bacula-ba...@googlegroups.com
Blz Danilo!!!
Vou aproveitar esse "thread" pra sugerir na lista de a gente incluir o "SOLVED" naquelas que forem sendo solucionadas...
Abraços!

Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsubscribe...@googlegroups.com.



--
Att.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para bacula-ba...@googlegroups.com.

Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsubscribe...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Danilo Bondezan
Analista de Suporte

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para bacula-ba...@googlegroups.com.

Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsubscribe...@googlegroups.com.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Bacula Backup-Pt-Br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para bacula-ba...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-pt-br+unsub...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/bacula-backup-pt-br?hl=pt-BR.

Robson Alexandre

unread,
Sep 28, 2012, 8:58:01 AM9/28/12
to bacula-ba...@googlegroups.com

Problema é q aqui no gmail apareceu como nova thread, pois agrupo as mensagens por assunto

Atenciosamente
Robson Alexandre

Enviado via Android Mobile

Para cancelar a inscrição nesse grupo, envie um e-mail para bacula-backup-p...@googlegroups.com.

Icaro Rezende

unread,
Sep 28, 2012, 10:56:23 AM9/28/12
to bacula-ba...@googlegroups.com
Danilo, poderia postar o job para futura consulta ?

Obrigado !

========================================
  Ícaro Rezende
  Analista de Tecnologia da Informação
  È   (71) 8815-5291
  * ic.re...@live.com
  ü www.icarorezende.com
========================================

Danilo Neves

unread,
Sep 28, 2012, 12:12:31 PM9/28/12
to bacula-ba...@googlegroups.com
Opaaaaa...vamos la.
Essas confs estão em ambiente de teste e logo pretendo colocar em produção.
Fiz vários testes com O.S  Windows, FreeBSD e Linux e todos com sucesso.
Quando eu for colocar em produção vou fazer algumas modificações para diminuir o tamanho das confs.
Mas em geral essas confs estão funcionando corretamente.


#cat  /etc/bacula/bacula-dir.conf
-------------------------------------------------------------------------------------------------------------------------------------------
#Configuracao padrao do Director

Director {                            # define myself
  Name = bacula-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/etc/bacula/query.sql"
  WorkingDirectory = "/var/bacula/working"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 3
  Password = "123456"         # Console password
  Messages = Daemon
}

# Include onde ficam cadastrados as maquinas clientes
@|"sh -c 'cat /etc/bacula/clientes/*.conf'"

# Backup sistema de arquivos Linux
FileSet {
  Name = "backup-linux"

        Include {
                Options {
                        signature = MD5
                        }
                File = /etc
                File = /home
                }
        }

# Backup sistema de arquivos FreeBSD
FileSet {
  Name = "backup-freebsd"

        Include {
                Options {
                        signature = MD5
                        }
                File = /etc
                File = /home
                File = /usr/local/etc
                }
        }

#Agendamento de Backup diaria, semanal e mensal.
Schedule {
Name = "agendamento-padrao"
Run = Level=Differential   Monday-Thursday at 19:00
Run = Level=Full 2nd 3rd 4th 5th Friday at 19:00
Run = Full sun-sat at 19:43
}


#Agendamento de Restore
Schedule {
Name = "restore-danilo"
Run = Full sun-sat at 8:45
}

#############################################
# 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 = "123456"
}

# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  Name = Standard
  mailcommand = "/sbin/bsmtp -h 192.168.1.21 -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/sbin/bsmtp -h 192.168.1.21 -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  mail = dan...@email.com.br = all, !skipped
  operator = dan...@email.com.br = mount
  console = all, !skipped, !saved
#
  append = "/var/bacula/working/log" = all, !skipped
  catalog = all, !skipped, !saved
}


#
# Message delivery for daemon messages (no job).
Messages {
  Name = Daemon
  mailcommand = "/sbin/bsmtp -h 192.168.1.21 -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  mail = dan...@email.com.br = all, !skipped
  console = all, !skipped, !saved
  append = "/var/bacula/working/log" = all, !skipped
}

Console {
  Name = bacula-mon
  Password = "123456"
  CommandACL = status, .status
}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#cat /etc/bacula/bacula-sd.conf
#Configuracao padrao do storage
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 = "123456"
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the storage daemon
#
Director {
  Name = bacula-mon
  Password = "123456"
  Monitor = yes
}

Device {
  Name = bacula
  Media Type = File
  Archive Device = /backup/bacula
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = danilo
  Media Type = File
  Archive Device = /backup/danilo
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}


Device {
  Name = matriz
  Media Type = File
  Archive Device = /backup/matriz
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = firewall
  Media Type = File
  Archive Device = /backup/firewall
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = monitoramento
  Media Type = File
  Archive Device = /backup/monitoramento
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = cameraseldorado
  Media Type = File
  Archive Device = /backup/cameraseldorado
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
  Name = win2008
  Media Type = File
  Archive Device = /backup/win2008
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}



Messages {
  Name = Standard
  director = bacula-dir = all
}
-----------------------------------------------------------------------------------------------------------------------------------------
# cat  /etc/bacula/clientes/bacula.conf
#Configuracao padrao do cliente
#JOB
Job {
Name = "Bacula"
Type = Backup
Level = Full
Client = bacula-fd
FileSet = "backup-linux"
Schedule = "agendamento-padrao"
Storage = bacula
Messages = Standard
Pool = bacula-diario
Priority = 10
Write Bootstrap = "/var/bacula/baculalocal.bsr"

}

#JOB RESTORE
Job {
Name = "Bacula-Restore"
Type = Restore
Client= bacula-fd
FileSet= "backup-linux"
Schedule = "restore-danilo"
Storage = bacula
Pool = bacula-diario
Messages = Standard
Where = /tmp/bacula-restores
Bootstrap = "/var/bacula/baculalocal.bsr"
}

#CLIENT
Client {
Name = bacula-fd
Address = 192.168.20.199
FDPort = 9102
Catalog = MyCatalog
Password = "123456"
File Retention = 30 days
Job Retention = 6 months
AutoPrune = yes
}

Storage {
Name = bacula
Address = 192.168.20.199
SDPort = 9103
Password = "123456"
Device = bacula
Media Type = File
}

#POOL
Pool {
Name = bacula-diario
Pool Type = Backup
Recycle = yes
# Bacula can automatically recycle Volumes
AutoPrune = yes
Volume Retention = 365 days

André Luiz Félix Pacheco

unread,
Nov 18, 2016, 4:46:14 PM11/18/16
to Bacula Backup-Pt-Br

Ana, 

Nesse caso o path de bootstrap é do lado do fd ou do dir?
Reply all
Reply to author
Forward
0 new messages