Instalación y configuración de Bacula con clientes en Debian Jessie

Buenos días | tardes | noches, en esta entrada os guiaré en la instalación y sobre todo configuración de Bacula en modo servidor y cliente para realizar copias de seguridad remotas.

El escenario a montar sería Bacula-Server con Debian Jessie realizando backups a tres clientes con:

  • Debian Jessie (Barney)
  • Ubuntu 16.04 Xenial (Homer)
  • CentOS 7 (Lisa)

Instalación y configuración de Bacula Server

Lo primero deberemos de instalar tanto MySQL-server como Bacula (servidor y cliente)

apt install mysql-server
 apt install bacula-server bacula-client

Damos los siguientes permisos al script que usa Bacula durante su Catalog Backup Job

chmod 755 /etc/bacula/scripts/delete_catalog_backup

Cómo el servidor tendrá un volumen añadido, en el cual guardaremos las copias de seguridad (la configuración la haremos más adelante),deberemos particionar, formatear y montar el volumen en un directorio:

fdisk /dev/vdb #Particionamos el volumen
mkfs.ext3 /dev/vdb1 #Damos formato al volumen (en mi caso ext4)
mkdir /bacula #Creamos el directorio dónde montaremos el volumen

Haremos que el volumen se monte automaticamente, para ello editamos el fichero /etc/fstab y agregamos la siguiente linea:

nano /etc/fstab

/dev/vdb1 /bacula ext4 defaults 0 2

Ejecutamos el siguiente comando para que se monte todo aquello definido en el fichero fstab:

mount -a

Creamos la siguiente estructura de carpetas con los permisos y propietarios que indicamos:

mkdir -p /bacula/backup /bacula/restore
chown -R bacula:bacula /bacula/
chmod -R 700 /bacula/

Con la estructura del servidor ya definida, procedemos a configurar los ficheros de bacula, empezamos con el fichero Bacula Director

nano /etc/bacula/bacula-dir.conf

Configuramos el apartado referente al Bacula Director cambiando la contraseña de acceso a la consola que usaremos después (es recomendable cambiar la contraseña en los ficheros bacula-dir.conf, bacula-sd.conf, bconsole.conf y en los ficheros correspondientes a los clientes), quedando así mi configuración:

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

Ahora modificamos el apartado referente a los JobDefs, editando el nombre, el cliente y la linea Schedule (en el caso de haber cambiado el nombre del schedule para la realización de las copias) quedando así:

JobDefs {
Name = "Backups" #Nombre del JobDefs
Type = Backup
Level = Full
Client = barney-fd #Cliente
FileSet = "Full Set"
Schedule = "Ciclos" #Nombre de las tareas a realizar
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = "/var/lib/bacula/%c.bsr"
}

Dentro del fichero, buscamos y reemplazamos el siguiente apartado:

Job {
Name = "BackupBarney" #Renombramos el nombre de este Job, en mi caso es el definido
JobDefs = "Backups"
}

Ahora buscamos por “RestoreFiles” y el primer Job que debería aparecer sería el siguiente:

Job {
Name = "RestBarney" #Cambiamos el nombre de este Job, el mio es el definido
Type = Restore
Client=barney-fd #Aquí aparece el nombre del archivo del cliente
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
}

Procedemos a configurar un FileSet (conjunto de ficheros usados por los Jobs), buscamos por “Full Set” y añadimos la siguiente linea en “Options”, debajo de signature, quedando así ese apartado:

FileSet {
Name = "Full Set"
Include {
  Options {
    signature = MD5
    compression = GZIP
  }

Modificamos la ruta del siguiente apartado llamado File (aquí elegimos los ficheros a guardar en la copia), de manera que quedaría así (estando dentro del anterior apartado FileSet):

File = /home
File = /etc
File = /var #En esta parte podríamos configurar las rutas de las que queremos hacer Backups
}

El siguiente apartado que encontrariamos se llama “Exclude” y sirve para excluir directorios a los que no le haríamos el backup. Así que le cambiamos la segunda ruta a /bacula, quedando así:

Exclude {
File = /var/lib/bacula
File = /bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
}
}

Seguimos en la configuración del fichero bacula-dir.conf, ahora toca modificar el apartado referente al Storage, el cual sirve para definir el Daemon Storage al que el Director debería conectarse. Editamos la linea de Address poniendo la ip externa de nuestra máquina, quedando de la siguiente forma:

# Definition of file storage device
Storage {
Name = File
# Do not use "localhost" here
Address = 10.0.0.13 # N.B. Use a fully qualified name here
SDPort = 9103
Password = "b1a2cula"
Device = FileStorage
Media Type = File
}

Ahora buscaremos el apartado referente a los Pools los cuales son recursos que definen el conjunto de Storages usados por Bacula para hacer backups. Agregamos al Pool las siguientes modificaciones quedando así:

# File Pool definition
Pool {
Name = File
Pool Type = Backup
Label format = Remoto- #Etiquetado de los Backups
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonab$
Maximum Volumes = 100 # Limit number of Volumes in Pool
}

Guardamos y salimos.

Verificamos que no tenemos errores en el fichero de configuración que editamos anteriormente:

bacula-dir -tc /etc/bacula/bacula-dir.conf

Con el Bacula Director ya configurado, ahora editamos el fichero bacula-sd.conf.

En el primer Storage, modificamos el apartado SDAddress y agregamos la ip quedando de la siguiente manera:

Storage { # definition of myself
Name = bacula-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
SDAddress = 10.0.0.13 #IP del servidor en local
}

Si anteriormente modificamos las contraseñas en el fichero bacula-dir.conf, deberemos de hacer lo propio en los apartados Director y Restricted Director del fichero bacula-sd.conf quedando así (respecto a la configuración establecida por mi):

# List Directors who are permitted to contact Storage daemon
Director {
Name = bacula-dir
Password = "b1a2cula"
}
# Restricted Director, used by tray-monitor to get the
# status of the storage daemon
Director {
Name = bacula-mon
Password = "b1a2cula"
Monitor = yes
}

Buscamos por Device, y en el primero cambiamos la linea de Archive Device (esto será nuestra ruta de almacenamiento de los backups realizados), quedando así el apartado:

Device {
Name = FileStorage
Media Type = File
Archive Device = /bacula/backup
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

Guardamos, salimos y comprobamos el fichero:

bacula-sd -tc bacula-sd.conf

Reiniciamos los servicios:

/etc/init.d/bacula-director restart
/etc/init.d/bacula-sd restart

Prueba de funcionalidad de la configuración realizada

Cómo root, entramos en la consola de Bacula con el siguiente comando (si hemos entrado bien, el prompt será un *):

bconsole

Creamos una etiqueta para las configuraciones anteriormente realizadas, para ello ejecutamos label en el prompt de Bacula:

label

Establecemos un nuevo nombre al volumen:

Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: File
Enter new Volume name: BaculaServer

Nos pedirá que elijamos un pool, en mi caso elegiré el definido por los ficheros de configuracion, así que elegiré la opción 2:

Defined Pools:
1: Default
2: File
3: Scratch
Select the Pool (1-3): 2

Si hacemos un status director nos mostrará la programación de los Jobs:

*status director
debian-dir Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 21-ene-17 18:17. Jobs: run=0, running=0 mode=0,0
Heap: heap=405,504 smbytes=50,901 max_bytes=51,895 bufs=201 max_bufs=210
Scheduled Jobs:
Level Type Pri Scheduled Name Volume
===================================================================================
Incremental Backup 10 21-ene-17 23:05 BackupLocal BaculaServer
Full Backup 11 21-ene-17 23:10 BackupCatalog BaculaServer
====
Running Jobs:
Console connected at 21-ene-17 18:17
No Jobs running.
====
No Terminated Jobs.
====

Haciendo nuestro primer Backup y Restore

Realización de un Backup

Para crear backups manualmente o mejor dicho, ejecutar manualmente los Jobs, ejecutaremos run desde el prompt de Bacula:

run

Nos dará a elegir 3 jobs, BackupLocal (realizar un backup de local), BackupCatalog (definio por BD) y RestoreFiles (restaurar un backup correctamente finalizado). Yo elegiré realizar un BackupLocal:

A job name must be specified.
The defined Job resources are:
1: BackupLocal
2: BackupCatalog
3: RestoreFiles
Choose a Job: 1

Nos aparecerán los detalles y nos preguntará si está todo bien. Si lo está, escribimos yes y continuamos:

Run Backup job
JobName: BackupLocal
Level: Incremental
Client: debian-fd
FileSet: Full Set
Pool: File (From Job resource)
Storage: File (From Job resource)
When: 2017-01-21 18:30:49
Priority: 10
OK to run? (yes/mod/no): yes

Al momento nos informará de que tenemos mensajes no leidos, para leerlos ejecutamos:

*messages
21-ene 18:32 debian-dir JobId 1: No prior Full backup Job record found.
21-ene 18:32 debian-dir JobId 1: No prior or suitable Full backup found in catalog. Doing 
FULL backup.
21-ene 18:32 debian-dir JobId 1: Start Backup JobId 1, Job=BackupLocal.2017-01-11_18.32.55_03
21-ene 18:32 debian-dir JobId 1: Using Device "FileStorage"
21-ene 18:32 debian-sd JobId 1: Wrote label to prelabeled Volume "BaculaServer" on device FileStorage" (/bacula/backup)

Y por último, podemos hacer un seguimiento de cómo va la realización del Backup ejecutando:

*status director
debian-dir Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu debian jessie/sid
Daemon started 21-ene-17 18:17. Jobs: run=0, running=1 mode=0,0
Heap: heap=405,504 smbytes=72,818 max_bytes=73,139 bufs=260 max_bufs=261
Scheduled Jobs:
Level Type Pri Scheduled Name Volume
===================================================================================
Incremental Backup 10 21-ene-17 23:05 BackupLocal BaculaServer
Full Backup 11 21-ene-17 23:10 BackupCatalog BaculaServer
====
Running Jobs:
Console connected at 21-ene-17 18:17
JobId Level Name Status
======================================================================
1 Full BackupLocal.2017-01-21_18.32.55_03 is running
====
No Terminated Jobs.
====
*

Cuando termine (no suele ser instantáneo, es decir, tardará, según el tamaño de los archivos a hacer el Backup) nos informará mediante mensajes que contienen lo siguiente:

*messages
21-ene 18:48 debian-fd JobId 1: /sys is a different filesystem. Will not descend from / into it.
21-ene 18:48 debian-sd JobId 1: Job write elapsed time = 00:15:55, Transfer rate = 2.553 M Bytes/second
21-ene 18:48 debian-dir JobId 1: Bacula debian-dir 5.2.6 (21Feb12):
Build OS: x86_64-pc-linux-gnu debian jessie/sid
JobId: 1
Job: BackupLocal.2017-01-21_18.32.55_03
Backup Level: Full (upgraded from Incremental)
Client: "debian-fd" 5.2.6 (21Feb12) x86_64-pc-linux-gnu,debian,jessie/sid
FileSet: "Full Set" 2017-01-21 18:32:55
Pool: "File" (From Job resource)
Catalog: "MyCatalog" (From Client resource)
Storage: "File" (From Job resource)
Scheduled time: 21-ene-2017 18:30:49
Start time: 21-ene-2017 18:32:57
End time: 21-ene-2017 18:48:55
Elapsed time: 15 mins 58 secs
Priority: 10
FD Files Written: 190,647
SD Files Written: 190,647
FD Bytes Written: 2,412,683,780 (2.412 GB)
SD Bytes Written: 2,438,466,223 (2.438 GB)
Rate: 2518.5 KB/s
Software Compression: 79.7 %
VSS: no
Encryption: no
Accurate: no
Volume name(s): BaculaServer
Volume Session Id: 1
Volume Session Time: 1485019035
Last Volume Bytes: 2,447,746,987 (2.447 GB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK
21-ene 18:48 debian-dir JobId 1: Begin pruning Jobs older than 6 months .
21-ene 18:48 debian-dir JobId 1: No Jobs found to prune.
21-ene 18:48 debian-dir JobId 1: Begin pruning Files.
21-ene 18:48 debian-dir JobId 1: No Files found to prune.
21-ene 18:48 debian-dir JobId 1: End auto prune.

Para más información acerca del Backup realizado, vemos la zona de “Terminated Jobs” del comando status director:

Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
1 Full 190,647 2.412 G OK 21-ene-17 18:48 BackupLocal
====

Realización de un Restore

Habiendo hecho ya nuestro primer Backup, procederemos a realizar un Restore con un backupd diferente, realizando esta prueba con un fichero llamado prueba1.txt en el home del cliente, así que con el fichero creado realizamos un backup (siguiendo los mismos pasos que arriba), después lo borramos y procedemos a realizar el restore de tal archivo con:

*restore

En la lista de opciones que nos muestra, elegimos la opción 5 y después nos dará a elegir el cliente a dónde restaurarlo:

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
Select item: (1-13): 5
Defined Clients:
1: apache-fd
2: debian-fd
Select the Client (1-2): 1

El siguiente paso es movernos al directorio dónde hemos eliminado el fichero:

cwd is: /
$ ls
*etc/
*home/
$ cd home/usuario
cwd is: /home/usuario/

Si hacemos un ls veremos que tenemos el fichero para restaurarlo, así que procedemos a marcarlo:

* mark prueba1.txt
1 file marked.

Hacemos done para finalizar el marcado de ficheros a restaurar y nos saldrá el resumen, si estamos conformes decimos yes

JobName: RestoreLocalFiles
Bootstrap: /var/lib/bacula/debian-dir.restore.1.bsr
Where: /copias/restore
Replace: always
FileSet: Full Set
Backup Client: apache-fd
Restore Client: apache-fd
Storage: File
When: 2017-01-23 16:55:08
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): yes

Procederá a realizar la restauración y si nos vamos al cliente y hacemos un ls del fichero anteriormente borrado veremos que está de nuevo ahí;

usuario@apache:~$ ls
cd60.iso Escritorio openbsd4-x86_64.qcow2 private.key Público virt-sparsify.1
Descargas Imágenes Plantillas prueba qemu
Documentos Música privada-personal.key prueba1.txt Vídeos

 

Configuración sobre la realización automática de las copias

Nos vamos al directorio de los ficheros de configuración por defecto de Bacula y editamos el fichero bacula-dir.conf

cd /etc/bacula
nano bacula-dir.conf

Buscamos por Weekly en el fichero y, a la tercera vez, nos aparecerá el siguiente apartado:

#
# When to do the backups, full backup on first sunday of the month,
# differential (i.e. incremental since full) every other sunday,
# and incremental backups other days
Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 16:50
Run = Differential 2nd-5th sun at 16:50
Run = Incremental mon-sat at 16:50
}
Procedemos a realizar la configuración que YO realizaré:

Schedule {
Name = "Ciclos"
Run = Full 1st sun at 22:50 #Copias completas el primer domingo del mes
Run = Full sun at 23:05 #Copias completas cada domingo del mes
Run = Differential mon-sat at 23:15 #Copias diferenciales diarias
}

Configuración previa del servidor de Bacula

Para ayudar a Bacula a organizarse, crearemos un directorio llamado conf.d en su directorio principal:

mkdir /etc/bacula/conf.d

Editamos el archivo de configuración /etc/bacula/bacula-dir.conf y agregamos la siguiente linea al final del fichero:

@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} ;"

La función primordial de agregar esa linea es que Bacula buscará, en el directorio creado anteriormente, configuraciones adicionales para agregarlas. Dichas configuraciones serán cargadas cómo parte de la configuración.

Creamos y editamos el fichero conf.d/pools.conf para agregar un Pool (archivo de configuración remoto):

nano conf.d/pools.conf

Añadimos el siguiente esquema:

Pool {
Name = RemoteFile
Pool Type = Backup
Label Format = Remote-
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
}

Dicho archivo definirá un Pool remoto, el cual usaremos para el Job del Backup que crearemos después.

Comprobamos que el archivo bacula-dir.conf está bien configurado:

bacula-dir -tc bacula-dir.conf

Si hubiera algún error nos saldría por pantalla.

Instalación y configuración de Bacula en los clientes

Barney

Procedemos a instalar Bacula en los clientes, para ello ejecutamos los siguientes comandos en Barney:

apt update
apt install bacula-client

El paquete Bacula-Client nos instalará un demonio de Bacula el cual usaremos para poder conectarnos al servidor de Bacula.

En el cliente barney, editamos el fichero /etc/bacula/bacula-fd.conf con el siguiente contenido:

Director {
Name = bacula-dir #Nombre del Bacula Director del servidor
Password = "b1a2cula" #Contraseña que usará para conectarse, deberá ser la misma
}
Director {
Name = bacula-mon #Usado por BCONSOLE que nos proporciona el estado del demonio
Password = "b1a2cula" #misma contraseña que la del servidor Bacula.
Monitor = yes
}
FileDaemon {
Name = barney-fd #Nombre con el que definiremos al cliente
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 10.0.0.14 #Ip externa del cliente
}

Al final de dicho fichero se encuentran el apartado de Messages, son mensajes que se mandarán al servidor para informar de la situación del cliente. Definimos el hostname del servidor en lo remarcado con negritas

Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}

Verificamos que lo definido está bien y sin errores:

bacula-fd -tc bacula-fd.conf

Reiniciamos el servicio:

/etc/init.d/bacula-fd restart

Lisa

Procedemos con la instalación de los paquetes en el cliente Lisa:

yum update
yum install bacula-client

En el cliente lisa, editamos el fichero /etc/bacula/bacula-fd.conf con el siguiente contenido:

Director {
Name = bacula-dir #Nombre del Bacula Director del servidor
Password = "b1a2cula" #Contraseña que usará para conectarse, deberá ser la misma
}
Director {
Name = bacula-mon #Usado por BCONSOLE que nos proporciona el estado del demonio
Password = "b1a2cula" #misma contraseña que la del servidor Bacula.
Monitor = yes
}
FileDaemon {
Name = lisa-fd #Nombre con el que definiremos al cliente
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 10.0.0.3 #Ip externa del cliente
}

Editamos también el apartado messages:

Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}

Verificamos que lo definido está bien y sin errores:

bacula-fd -tc bacula-fd.conf

Reiniciamos el servicio:

systemctl restart bacula-fd

Homer

Por último, instalamos Bacula-client en Homer, para ello cambiamos los repositorios ya que los que trae por defecto te instala la versión 7.0 y no es compatible con la 5.2.6 actualmente instalada en el servidor Bacula:

deb http://archive.ubuntu.com/ubuntu trusty main restricted
deb-src http://archive.ubuntu.com/ubuntu trusty main restricted
deb http://archive.ubuntu.com/ubuntu trusty-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu trusty-updates main restricted
deb http://archive.ubuntu.com/ubuntu trusty universe
deb-src http://archive.ubuntu.com/ubuntu trusty universe
deb http://archive.ubuntu.com/ubuntu trusty-updates universe
deb-src http://archive.ubuntu.com/ubuntu trusty-updates universe
deb http://archive.ubuntu.com/ubuntu trusty multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe 
multiverse
deb-src http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu trusty-security main
deb-src http://security.ubuntu.com/ubuntu trusty-security main
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe

Ahora si, instalamos el paquete:

apt update
apt install bacula-client

En el cliente Homer, editamos el fichero /etc/bacula/bacula-fd.conf con el siguiente contenido:

Director {
Name = bacula-dir #Nombre del Bacula Director del servidor
Password = "b1a2cula" #Contraseña que usará para conectarse, deberá ser la misma
}
Director {
Name = bacula-mon #Usado por BCONSOLE que nos proporciona el estado del demonio
Password = "b1a2cula" #misma contraseña que la del servidor Bacula.
Monitor = yes
}
FileDaemon {
Name = homer-fd #Nombre con el que definiremos al cliente
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 10.0.0.9 #Ip externa del cliente
}

Y cómo hicimos con los demás, editamos tambien los messages:

Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}

Verificamos que lo definido está bien y sin errores:

bacula-fd -tc bacula-fd.conf

Reiniciamos el servicio:

/etc/init.d/bacula-fd restart

Configuración posterior a los clientes en el Servidor de Bacula

Procedemos a crear los archivos a guardar en los backups, para ellos creamos y editamos el fichero conf.d/filesets.conf en el servidor y añadimos las siguientes lineas (Podemos definir tantos FileSet cómo queramos):

nano conf.d/filesets.conf

FileSet {
Name = "Archivos" #Nombre que deberá ser único
Include {
Options {
signature = MD5
compression = GZIP
}
#Directorios que incluiremos en los backups
File = /home
File = /etc
File = /var
}

#Directorios que excluiremos de los backups
Exclude {
File = /home/bacula
}
}

Guardamos y pasamos a crear y editar el fichero correspondiente a los clientes. Crearemos un recurso del cliente que le servirá al servidor de Bacula para establecer la conexión con el cliente. En dicho fichero añadimos las siguientes lineas:

nano conf.d/clients.conf

Client {
Name = lisa-fd #Hostname del cliente en negrita
Address = 10.0.0.3 #Dirección ip externa del cliente
FDPort = 9102
Catalog = MyCatalog
Password = "b1a2cula" # Contraseña para el demonio remoto
File Retention = 365 days # 30 days
Job Retention = 12 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

En el mismo fichero, crearemos un job para el backup, esto nos servirá para elegir qué tipos de backups realizaremos (full, incremental o diferencial establecido en el parámetro JobDefs del fichero bacula-dir.conf del servidor)

Job {
Name = "BackupLisa" #Nombre del Job (debe ser único)
JobDefs = "Backups" #Tipo de Job elegido
Client = lisa-fd #Hostname del cliente
Pool = RemoteFile
FileSet="Archivos" #Nombre del FileSet anteriormente definido
}

Por último agregamos al último cliente, Homer:

Client {
Name = homer-fd #Hostname del cliente en negrita
Address = 10.0.0.9 #Dirección ip externa del cliente
FDPort = 9102
Catalog = MyCatalog
Password = "b1a2cula" # Contraseña para el demonio remoto
File Retention = 365 days # 30 days
Job Retention = 12 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Job {
Name = "BackupHomer" #Nombre del Job (debe ser único)
JobDefs = "Backups" #Tipo de Job elegido
Client = homer-fd #Hostname del cliente
Pool = RemoteFile
FileSet="Archivos" #Nombre del FileSet anteriormente definido
}

Reiniciamos el servicio Bacula Director en el servidor de Bacula:

/etc/init.t/bacula-director restart

Comprobamos que podemos conectarnos con el cliente:

root@bacula:/etc/bacula# bconsole
Connecting to Director localhost:9101
1000 OK: bacula-dir Version: 5.2.6 (21 February 2012)
Enter a period to cancel a command.
*status client
The defined Client resources are:
1: barney-fd
2: lisa-fd
3: homer-fd
Select Client (File daemon) resource (1-3): 3

Y si hemos realizado algun Backup (de prueba) nos saldrán todos:

Select Client (File daemon) resource (1-3): 3
Connecting to Client homer-fd at 10.0.0.9:9102
homer-fd Version: 5.2.6 (21 February 2012) x86_64-pc-linux-gnu ubuntu 14.04
Daemon started 23-Jan-17 13:30. Jobs: run=1 running=0.
Heap: heap=135,168 smbytes=94,598 max_bytes=323,774 bufs=63 max_bufs=125
Sizeof: boffset_t=8 size_t=8 debug=0 trace=0
Running Jobs:
Director connected at: 23-Jan-17 15:30
No Jobs running.
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
======================================================================
33 Full 6,569 106.1 M OK 23-Jan-17 13:32 BackupHomer
====
*

NOTA: si queremos probar el realizar Backups, deberemos crear un label con el formato que nos aparecerá al hacer un status director, Ejemplo: Remote-<numero>

 

Eso ha sido todo. Un poco largo, ¿verdad?

Nos vemos en la próxima entrada!

Saludos!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.