Instalar el servidor de copias de seguridad de Bacula en Ubuntu 20.04

Bacula es una herramienta de copia de seguridad de código abierto que puede utilizarse para hacer copias de seguridad y restaurar datos en la red. Es una herramienta sencilla y fácil de usar, y ofrece muchas funciones avanzadas de gestión del almacenamiento que te ayudan a hacer copias de seguridad y a recuperar tus archivos perdidos fácilmente. Es compatible con el cliente de copia de seguridad de Linux, Windows y macOS, y también admite una amplia gama de dispositivos de copia de seguridad. Bacula se compone de varios componentes, entre los que se encuentran el directorio de Bacula, Bacula, la consola, el almacenamiento de Bacula, el archivo de Bacula y el catálogo de Bacula. Cada componente es responsable de gestionar trabajos específicos.

En este tutorial, te mostraremos cómo instalar y configurar el sistema de copia de seguridad en Ubuntu 20.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 20.04 con un mínimo de 2 GB de RAM.
  • Una contraseña de root configurada el servidor.

Cómo empezar

En primer lugar, tendrás que actualizar tu sistema a la última versión estable. Puedes actualizarlo con el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, puedes pasar al siguiente paso.

Instalar Bacula

Por defecto, el paquete Bacula está disponible en el repositorio por defecto de Ubuntu 20.04. Puedes instalarlo fácilmente con el siguiente comando:

apt-get install bacula -y

Durante la instalación, se te pedirá que selecciones el servidor de correo como se muestra a continuación:

Configuración de Postfix

Selecciona el servidor de correo que desees y haz clic en el botón Aceptar. Se te pedirá que proporciones el nombre de tu sistema de correo como se muestra a continuación:

Nombre del correo del sistema

Proporciona el nombre de tu sistema de correo y haz clic en el botón Aceptar. Se te pedirá que configures una base de datos para bacula como se muestra a continuación:

Bacula directore Postgres

Haz clic en el botón . Se te pedirá que selecciones el host del servidor PostgreSQL como se muestra a continuación:

Host de la base de datos PostgreSQL

Selecciona localhost y haz clic en el botón Aceptar. Se te pedirá que proporciones la contraseña de PostgreSQL como se muestra a continuación:

Contraseña de PostgreSQL

Proporciona la contraseña que desees y haz clic en el botón Aceptar para continuar la instalación.

Una vez instalado el paquete de Bacula, puedes pasar al siguiente paso.

Configurar el almacenamiento de Bacula

Antes de empezar, crea un directorio para almacenar los archivos de copia de seguridad. Puedes crearlo con el siguiente comando:

mkdir /backup

A continuación, cambia la propiedad del directorio bacula al usuario y grupo bacula con el siguiente comando:

chown -R bacula:bacula /backup

A continuación, tendrás que editar el archivo de configuración por defecto de bacula storage y definir el dispositivo y la ubicación del almacenamiento.

nano /etc/bacula/bacula-sd.conf

Elimina o comenta otras secciones «Dispositivo {» y «Intercambiador automático {» y añade las siguientes líneas:

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

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio de almacenamiento de Bacula con el siguiente comando:

systemctl restart bacula-sd.service

Ahora puedes verificar el estado del almacenamiento de Bacula con el siguiente comando:

systemctl status bacula-sd

Deberías obtener la siguiente salida:

? bacula-sd.service - Bacula Storage Daemon service
     Loaded: loaded (/lib/systemd/system/bacula-sd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-10-06 09:32:43 UTC; 8s ago
       Docs: man:bacula-sd(8)
    Process: 10687 ExecStartPre=/usr/sbin/bacula-sd -t -c $CONFIG (code=exited, status=0/SUCCESS)
   Main PID: 10688 (bacula-sd)
      Tasks: 2 (limit: 4691)
     Memory: 1.0M
     CGroup: /system.slice/bacula-sd.service
             ??10688 /usr/sbin/bacula-sd -fP -c /etc/bacula/bacula-sd.conf

Oct 06 09:32:43 ubuntu2004 systemd[1]: Starting Bacula Storage Daemon service...
Oct 06 09:32:43 ubuntu2004 systemd[1]: Started Bacula Storage Daemon service.

Configurar el Director de Bacula

A continuación, tendrás que editar el archivo de configuración del director de Bacula y proporcionar tu ubicación de almacenamiento. Puedes editarlo con el siguiente comando:

nano /etc/bacula/bacula-dir.conf

Añade las siguientes líneas, incluyendo, Nombre del dispositivo, Nombre del almacenamiento, Contraseña, Trabajo, etc.

Storage {
Name = ubuntu2004-sd  # Must be equal to the "Name" parameter of the "Storage" section in the /etc/bacula/bacula-sd.conf file
Address = 127.0.0.1
Password = "aFEH-0a3QycsbYQVcoy_VoUMhAHJQ00CD" # Password must match the password in the /etc/bacula/bacula-sd.conf
Device = Local-device
Media Type = File
}

FileSet {
Name = "Local-file"
Include {
Options {
signature = MD5
}
File = /etc 
}
}

Schedule {
Name = "LocalDaily"
Run = Full daily at 06:00
}

Job {
Name = "LocalBackup"
JobDefs = "DefaultJob"
Enabled = yes
Level = Full
FileSet = "Local-file"
Schedule = "LocalDaily"
Storage = ubuntu2004-sd
Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
}

Guarda y cierra el archivo cuando hayas terminado y reinicia el servicio de Bacula director para aplicar los cambios:

systemctl restart bacula-dir

También puedes verificar el estado del servicio Bacula director con el siguiente comando:

systemctl status bacula-dir

Deberías obtener la siguiente salida:

? bacula-director.service - Bacula Director Daemon service
     Loaded: loaded (/lib/systemd/system/bacula-director.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-10-06 09:32:43 UTC; 9s ago
       Docs: man:bacula-dir(8)
    Process: 10667 ExecStartPre=/usr/sbin/bacula-dir -t -c $CONFIG (code=exited, status=0/SUCCESS)
   Main PID: 10683 (bacula-dir)
      Tasks: 3 (limit: 4691)
     Memory: 2.1M
     CGroup: /system.slice/bacula-director.service
             ??10683 /usr/sbin/bacula-dir -fP -c /etc/bacula/bacula-dir.conf

Oct 06 09:32:43 ubuntu2004 systemd[1]: Starting Bacula Director Daemon service...
Oct 06 09:32:43 ubuntu2004 systemd[1]: Started Bacula Director Daemon service.

Verificar el trabajo de copia de seguridad

En este punto, Bacula está instalado y configurado para ejecutarse diariamente a las 6:00. Ahora, vamos a utilizar la consola de Bacula para ejecutar nuestro primer trabajo de copia de seguridad.

bconsole

Una vez conectado, deberías obtener la siguiente salida:

Connecting to Director localhost:9101
1000 OK: 103 ubuntu2004-dir Version: 9.4.2 (04 February 2019)
Enter a period to cancel a command.

A continuación, ejecuta el siguiente comando para iniciar el trabajo de copia de seguridad:

*run

Se te pedirá que selecciones el trabajo de copia de seguridad como se muestra a continuación:

Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
A job name must be specified.
The defined Job resources are:
     1: BackupClient1
     2: LocalBackup
     3: BackupCatalog
     4: RestoreFiles
Select Job resource (1-4): 2

Escribe 2 para seleccionar el LocalBackup que has definido en el archivo de configuración y pulsa Intro. Deberías ver la siguiente salida:

Run Backup job
JobName:  LocalBackup
Level:    Full
Client:   ubuntu2004-fd
FileSet:  Local-file
Pool:     File (From Job resource)
Storage:  ubuntu2004-sd (From Job resource)
When:     2020-10-06 09:50:47
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=3
You have messages.

En este punto, se inicia el trabajo de copia de seguridad. Puedes comprobar el estado del trabajo de copia de seguridad con el siguiente comando:

*status

Se te pedirá que selecciones el estado de los siguientes componentes:

Status available for:
     1: Director
     2: Storage
     3: Client
     4: Scheduled
     5: Network
     6: All
Select daemon type for status (1-6): 1

Escribe 1 y pulsa Intro para comprobar el estado del Director. Deberías ver la siguiente salida:

ubuntu2004-dir Version: 9.4.2 (04 February 2019) x86_64-pc-linux-gnu ubuntu 20.04
Daemon started 06-Oct-20 09:50, conf reloaded 06-Oct-2020 09:50:27
 Jobs: run=1, running=0 mode=0,0
 Heap: heap=274,432 smbytes=106,782 max_bytes=135,168 bufs=343 max_bufs=377
 Res: njobs=4 nclients=1 nstores=3 npools=3 ncats=1 nfsets=3 nscheds=3

Scheduled Jobs:
Level          Type     Pri  Scheduled          Job Name           Volume
===================================================================================
Full           Backup    10  07-Oct-20 06:00    LocalBackup        Vol-0001
====

Running Jobs:
Console connected at 06-Oct-20 09:50
No Jobs running.
====

Terminated Jobs:
 JobId  Level      Files    Bytes   Status   Finished        Name 
====================================================================
     1  Full       2,262    2.875 M  OK       06-Oct-20 09:50 LocalBackup

====

A continuación, ejecuta de nuevo el comando de estado y comprueba el estado del almacenamiento de Bacula.

*status

Deberías ver la siguiente salida:

Status available for:
     1: Director
     2: Storage
     3: Client
     4: Scheduled
     5: Network
     6: All
Select daemon type for status (1-6): 2
The defined Storage resources are:
     1: File1
     2: ubuntu2004-sd
Select Storage resource (1-2): 1
Connecting to Storage daemon File1 at localhost:9103

ubuntu2004-sd Version: 9.4.2 (04 February 2019) x86_64-pc-linux-gnu ubuntu 20.04
Daemon started 06-Oct-20 09:50. Jobs: run=1, running=0.
 Heap: heap=106,496 smbytes=369,301 max_bytes=567,404 bufs=90 max_bufs=110
 Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0 newbsr=0
 Res: ndevices=1 nautochgr=0

Running Jobs:
No Jobs running.
====

Jobs waiting to reserve a drive:
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name 
===================================================================
     3  Full      2,262    3.156 M  OK       06-Oct-20 09:50 LocalBackup
====

Device status:

Device File: "Local-device" (/backup) is not open.
   Available Space=93.95 GB
==
====

Used Volume status:
====

Attr spooling: 0 active jobs, 454,546 bytes; 1 total jobs, 454,546 max bytes.
====

A continuación, sal de la consola de Bacula con el siguiente comando:

*exit

A continuación, verifica el directorio de la copia de seguridad con el siguiente comando

ls /backup/

Deberías ver que se ha creado la copia de seguridad Vol-0001:

Vol-0001

Conclusión

Enhorabuena! has instalado y configurado con éxito la copia de seguridad de Bacula en el servidor Ubuntu 20.04. Ahora puedes instalar el cliente de Bacula en la máquina remota y hacer una copia de seguridad de tu sistema cliente fácilmente. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...