bacula restore job

Bueno, en este howto les voy a mostrar como hacer un job que recupere el el estado de un servicio. En otros posts de este blog encontrarán varias configuraciones para clearspace, zimbra, mysql y apache. Bueno, precisamente ahora vamos a crear un job para restaurar esos servicios.Primero los invito que lean los archivos de configuración de este post donde estará la definición de los jobs que restauraremos ahora.

Job {
Name = “RestoreMysql”
Type = Restore
Client = clienthost.com-fd
FileSet=”Mysql”
Storage = File
Pool = Default
Messages = Standard
regexwhere=!/home/mysql!/var/lib/mysql!
Bootstrap = “/var/lib/bacula/Mysql.bsr”
RunBeforeJob = “ssh root@clienthost.com ‘/etc/init.d/mysql stop'”
RunAfterJob = “ssh root@clienthost.com ‘/etc/init.d/mysql start'”
}

Bueno, de acá lo importante, primero los runbefore y runafter son para apagar el servicio (en serio? :O), el bootstrap es el archivo histórico de backups, es necesario que sea el mismo que escribimos cuando hicimos el backup.
Creo que lo más importante es la sentencia regexwhere, qué no es más que una expresión regular para que los datos no los ponga del lugar de donde los sacó, que como hicimos backup en caliente no coincide con la base de datos, en cambio que los ponga a donde nosotros queremos.

Acá les dejo el resto de los jobs.

Job {
Name = “RestoreZimbra”
Type = Restore
Client = clienthost.com-fd
FileSet=”Zimbra”
Storage = File
Pool = Default
Messages = Standard
regexwhere=!/home/backupzimbra!/opt!
Bootstrap = “/var/lib/bacula/Zimbra.bsr”
RunBeforeJob = “ssh zimbra@clienthost.com ‘zmcontrol stop'”
RunAfterJob = “ssh zimbra@clienthost.com ‘zmcontrol start'”
}
Job {
Name = “RestoreApache”
Type = Restore
Client = clienthost.com-fd
FileSet=”Apache”
Storage = File
Pool = Default
Messages = Standard
Bootstrap = “/var/lib/bacula/Apache.bsr”
}
Job {
Name = “RestoreClearSpace”
Type = Restore
Client = clienthost.com-fd
FileSet=”ClearSpace”
Storage = File
Pool = Default
Messages = Standard
regexwhere=!/home/backupjive!/usr/local/jive!
Bootstrap = “/var/lib/bacula/ClearSpace.bsr”
RunBeforeJob = “ssh jive@clienthost.com ‘/home/jive/bin/appstop'”
RunAfterJob = “ssh jive@clienthost.com ‘/home/jive/bin/appstart'”
}

Espero lo disfruten 😛

Salud!

Tags: , , , , , , , ,

2 Responses to “bacula restore job”

  1. Jorge says:

    Hola Matias!, tenemos funcionando sin problemas Bacula 5 sobre Open Suse 10.3 con Gnome, el problema se nos presenta al intentar restaurar un backup cuyo origen es xfs con acl’s.
    Lo devolvemos a otro xfs pero no devuelve las acl’s
    Ademas de poner en el fileset aclsupport=yes hemos agragado la linea fstype=xfs, ero no ha cambiado nada.
    Saludos

    • Matias Neiff says:

      Hola Jorge, las acls son a nivel kernel y bacula labura con los archivos, no creo que pueda leer y copiar los acls. Creo que tu mejor opción es hacerte un script que corra después del restore y vuelva a poner los acls cómo tienen que ser.
      Por ejemplo algo así para hacer el backup:
      #!/bin/sh
      BACKUP_DIRS=”/uno /dos”
      STORE_ACL=/root/acl-backup
      umask 077
      for i in $BACKUP_DIRS; do
      cd $i /usr/bin/getfacl -R –skip-base .>$STORE_ACL/${i//\//_}
      done

      Y algo similar para restarurar con setfacl, dale una mirada a este link:
      http://www.vanemery.com/Linux/ACL/linux-acl.html#copy

      Saludos.
      MN