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!