Cómo configurar copias de seguridad remotas con Bacula en Ubuntu 20.04
Recientemente configuramos el archivo copia de seguridad en un local Ubuntu Servidor 20.04 con BaculaUsaremos este servidor como Director y Almacenamiento de Bacula. En este tutorial, agregaremos configuraciones para realizar copias de seguridad de un cliente remoto.
Instalación y configuración del cliente
El cliente es una máquina remota que se ejecuta Ubuntu Servidor 20.04 cuyos datos serán respaldados. Instalemos el paquete Bacula para ello.
sudo apt install bacula-clientAbra el archivo de configuración.
sudo nano /etc/bacula/bacula-fd.confCopie la contraseña de la sección del primer Director a una ubicación disponible para uso futuro en el servidor de Bacula.
Director {
Name = Ubuntu-Server # Enter the name of the server’s Bacula Director here
Password = "6L8hAXhC3BES4OlbkI2F-v6Xq66Dem05v" #Copy this value
}También configure los valores "Name" y "FDAddress" en la sección FileDaemon. El mismo nombre que configuraremos en el servidor Bacula para este cliente de File Daemon, y "FDAddress" debe contener la dirección IP en la que está disponible este cliente.
FileDaemon {
Name = Ubuntu-Client-fd
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /run/bacula
Maximum Concurrent Jobs = 20
Plugin Directory = /usr/lib/bacula
FDAddress = 10.5.5.5
}Guarde el archivo y reinicie el servicio.
sudo systemctl restart bacula-fdPara poder restaurar archivos en esta máquina, cree una carpeta y haga que bacula sea su propietario.
mkdir /opt/restore
chown bacula:bacula /opt/restoreConfiguración del servidor Bacula
El servidor Bacula ya está configurado. Utilizaremos el almacenamiento existente y agregaremos una configuración para realizar una copia de seguridad del cliente.
Establezca la dirección IP del servidor en el parámetro “SDAddress” de la sección “Almacenamiento” en el /etc/bacula/bacula-sd.conf .
Storage {
...
SDAddress = 10.5.5.1
}Abra el archivo de configuración de Bacula Director /etc/bacula/bacula-dir.conf.
Ingrese la dirección IP del servidor en el campo "DirAddress" de la sección Director.
Director {
Name = Ubuntu-Server
...
DirAddress = 10.5.5.1
}Introduzca la misma dirección en el parámetro “Dirección” de la sección “Almacenamiento”.
Storage {
...
Address = 10.5.5.1
}También es necesario introducirlo en el parámetro “Dirección” en el /etc/bacula/bconsole.conf .
Ahora ve al /etc/bacula/bacula-dir.conf Vuelva a archivar el archivo y agregue una nueva sección “Cliente”.
Client {
Name = Ubuntu-Client-fd # Value of the “Name” field in the “FileDaemon” section on the client
Address = 10.5.5.5 # IP address of the client
FDPort = 9102
Catalog = MyCatalog
Password = "6L8hAXhC3BES4OlbkI2F-v6Xq66Dem05v" # Paste here the value of the “Password” parameter in the “Director” section on the client
}Agregue una nueva sección “FileSet” con un nombre único. Los parámetros “File” establecen las rutas de las que se realizará la copia de seguridad. Puede agregar cualquier cantidad de ellas.
FileSet {
Name = "RemoteFS"
Include {
Options {
signature = MD5
}
File = /home/user1
File = /home/user2
}
}Agregue una nueva sección de "Programación", establezca un nombre único para ella y seleccione una hora para la copia de seguridad.
Schedule {
Name = "RemoteDaily"
Run = Full daily at 05:00
}Agregue una nueva sección de piscina.
Pool {
Name = RemotePool
Pool Type = Backup
Label Format = "RM-" # New label for separating files in the backup storage from local backups
}
Agregar una nueva sección de trabajo.
Job {
Client = "Ubuntu-Client-fd" # The “Name” value of the recently created “Client”
Name = "RemoteBackup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = "RemoteFS" # The name of recently added “FileSet’ section
Schedule = "RemoteDaily" # The name of the schedule for this Job
Pool = "RemotePool" # Must be equal to the recently created “Pool” name
Storage = LocalSD
Write Bootstrap = "/var/lib/bacula/RemoteBackup.bsr"
}Agregue también la sección "Trabajo" para poder restaurar los datos.
Job {
Name = "RemoteRestore"
Type = Restore
Client= "Ubuntu-Client-fd"
FileSet="Full Set"
Storage = LocalSD
Pool = "RemotePool"
Messages = Standard
Where = /opt/restore # Path to the folder that we created on the client for data restore
Bootstrap = "/var/lib/bacula/RemoteBackup.bsr"
}Guarde y cierre el archivo y reinicie el servicio Bacula.
sudo systemctl restart bacula-dirEjecutar la copia de seguridad del servidor remoto usando Bacula
El trabajo de copia de seguridad comenzará ahora a la hora programada. Para iniciarlo de inmediato, vaya a "bconsole".
bconsoleSalida:
Connecting to Director 10.5.5.1:9101
1000 OK: 103 Ubuntu-Server Version: 9.4.2 (04 February 2019)
Enter a period to cancel a command.
*Ingresa “Ejecutar” y selecciona la tarea “RemoteBackup”. Ahora puedes verificar, modificar o confirmar los parámetros listados. También puedes cambiar el destino de la recuperación de archivos en este paso, por ejemplo. Puede ser útil en caso de pérdida de un cliente.
Run Backup job
JobName: RemoteBackup
Level: Full
Client: Ubuntu-Client-fd
FileSet: RemoteFS
Pool: RemotePool (From Job resource)
Storage: LocalSD (From Job resource)
...Para ver información sobre trabajos programados, en ejecución y finalizados, escriba “estado” y luego “1”.
Para restaurar los datos, ingrese el comando "restaurar" en bconsole y siga las instrucciones.
Conclusión
En este tutorial, configuramos copias de seguridad de clientes remotos usando Bacula en Ubuntu 20.04. Al instalar y configurar Bacula File Daemon (FD) en el equipo cliente y registrarlo correctamente en el servidor Bacula, establecimos un flujo de trabajo de copias de seguridad fiable y automatizado. El diseño modular de Bacula ofrece flexibilidad y escalabilidad, lo que lo hace ideal para estrategias de copias de seguridad empresariales. Las copias de seguridad periódicas y una ruta de restauración clara ayudan a proteger sus datos de pérdidas accidentales o fallos del sistema.
Preguntas Frecuentes
- P: ¿Puedo realizar copias de seguridad de varios clientes remotos utilizando el mismo servidor Bacula?
R: Sí, Bacula está diseñado para gestionar múltiples clientes. Solo necesita crear bloques de configuración separados (Cliente, Trabajo, Conjunto de archivos, etc.) para cada máquina. - P: ¿La máquina cliente necesita una dirección IP estática?
A: Se recomienda utilizar una IP estática o una DNS nombre para garantizar una conectividad consistente entre el servidor y el cliente. - P: ¿Qué pasa si falla el trabajo de respaldo?
R: Puede consultar los registros de trabajos a través de bconsole usando el comando "status" o "messages" para solucionar problemas. Compruebe la conectividad, las discrepancias de contraseñas y la sintaxis de configuración. - P: ¿Puedo programar copias de seguridad incrementales o diferenciales en lugar de copias de seguridad completas?
R: Sí, Bacula admite varios niveles de copia de seguridad. Puede modificar el parámetro Nivel en la definición del trabajo a Incremental, Diferencial o Completo. - P: ¿Es seguro restaurar archivos directamente a la ubicación original?
R: Si bien es posible, es más seguro restaurar primero a un directorio separado como /opt/restore para verificar los datos antes de sobrescribir algo.
700
300
700
300
700
300