Borg Backup, herramienta de copias de seguridad para Linux

En Software, Tutoriales y Guías por

Las copias de seguridad se han convertido en algo imprescindible en nuestro día a día, sobre todo desde que disponemos de servicios de almacenamiento en la nube y discos duros de gran capacidad. Ahora bien, el encontrar una herramienta de copias de seguridad fiable y que responda a nuestras necesidades ya es algo más complejo. Hoy os presentamos una herramienta de copias de seguridad gratuita y de código abierto llamada Borg Backup.

Borg Backup, herramienta de copias de seguridad para Linux

Esta herramienta no es nueva, de hecho lleva en GitHub desde el año 2013, pero han sido todos estos años los que han posibilitado que Borg Backup madurara como proyecto y ahora mismo es una de las aplicaciones de copia de seguridad más recomendadas en el universo Linux. En este artículo, además de conocer las características de Borg más de cerca, servirá como tutorial de introducción al uso de esta fantástica herramienta.

Qué es Borg Backup y ventajas de uso.

La herramienta Borg Backup es más conocida como Borg y destaca por ser un software capaz de crear copias de seguridad con la técnica de «deduplicating». Esta técnica permite crear copias de seguridad incrementales, de forma que sólo los nuevos archivos o los que han sido modificados son almacenados en las nuevas copias de seguridad.

Para asegurarme de que lo anterior queda claro, voy a proponeros un ejemplo en el que tenemos una carpeta con todas nuestras fotos, pero cada mes añadimos fotos nuevas. Una vez realizada la primera copia de seguridad de esta carpeta, cuando vayamos a realizar la segunda copia de seguridad, sólo se respaldarán las fotografías que no estén presentes en la primera copia de seguridad o aquellas que hayan sido modificadas. De este modo ahorraremos espacio y tiempo.

deduplication diagrama

Este sistema de «deduplicación» convierte a Borg en la herramienta ideal para crear backups de forma diaria, ya que el tamaño de las copias de seguridad irá incrementando en función de los cambios. Además, nos ofrece otras muchas características que lo convierten en una herramienta sólida y fiable.

Características de Borg Backup que lo hacen una herramienta de copias de seguridad excepcional.

Borg está programado en Python y nos ofrece varias opciones que permiten crear backups de forma segura. A continuación iremos viendo las características más destacadas de Borg:

  • El sistema de «deduplication» permite ahorrar espacio a la hora de crear respaldos de nuestros ficheros.
  • Gran velocidad y rendimiento a la hora de crear las copias de seguridad. Esto se debe fundamentalmente al uso de C/Cython para programar las funcionalidades críticas del programa.
  • Posibilidad de comprimir los backups con diferentes algoritmos. Podemos elegir entre tres algoritmos: lz4 (aconsejable para comprimir rápido pero con ratios de compresión bajos), zlib (velocidad media de compresión y ratio de compresión medio) y lzma (velocidad de compresión lenta, pero con ratios de compresión altos). Cada uno tiene sus ventajas e inconvenientes, pero podemos elegir el que más nos convenga.
  • Posibilidad de encriptar los datos para protegerlos con el algoritmo AES 256-bit. Al mismo tiempo, la verificación de la integridad de los datos se realiza con el algoritmo HMAC-SHA256.
  • Con Borg podemos almacenar las copias de seguridad en un servidor remoto, siempre y cuando permita conexiones SSH.
  • Los archivos de copia de seguridad creados, pueden ser montados como una unidad de almacenamiento. Esto nos permite examinar los contenidos del backup directamente desde un gestor de archivos (Nautilus, Thunar, Nemo, PCManFM, etc).

¿Cómo instalar Borg Backup en Ubuntu?

Borg es compatible con la mayoría de sistemas operativos Linux (Ubuntu, CentOS, Debian, openSUSE, etc), FreeBSD, macOS e incluso podemos usarlo en una Raspberry Pi. Es una aplicación que se maneja desde la terminal y por el momento no está disponible para sistemas operativos Windows. Se ha probado a usarlo con Cygwin y bajo el subsistema Linux de Windows 10, pero por el momento no es funcional.

A la hora de instalar Borg Backup, podemos recurrir a los repositorios oficiales de nuestra distribución, recurrir a repositorios no oficiales o emplear el binario precompilado que está disponible en el apartado releases de la página de GitHub del proyecto.

En mi caso, como usuario de Ubuntu suelo instalar Borg desde los repositorios oficiales con el comando sudo apt install borgbackup.

Como suele ser habitual, en los repositorios oficiales de Ubuntu no dispondremos de la última versión, pero podemos recurrir al PPA no oficial para instalar una versión actualizada. Para esto, tendremos que ejecutar los siguientes comandos:

sudo add-apt-repository ppa:costamagnagianfranco/borgbackup
sudo apt-get update
sudo apt-get install borgbackup

Para más información acerca de la instalación de Borg en otras distribuciones o instrucciones para compilarlo desde el código fuente, recomiendo pasarse por su página de ayuda oficial.

Tutorial de uso de Borg Backup con los conceptos básicos.

Para sacar todo el provecho a esta herramienta desde el primer momento, vamos a proponeros una serie de ejemplos que os ayudarán a entender el funcionamiento de Borg y así usarlo sin problemas.

Creando copias de seguridad con Borg.

En primer lugar debemos entender que Borg funciona con repositorios y debemos crear uno antes de comenzar a respaldar datos. Para crear un repositorio es recomendable emplear la encriptación y para ello podemos emplear el siguiente comando:
sudo borg init --encryption=repokey /home/vozidea/mirepositorio

Una vez introducido el comando anterior, nos solicitara una «passphrase», que es como una contraseña, la cual deberemos recordar para poder acceder más adelante al repositorio creado. A modo de ejemplo, voy a usar como passphrase: vozidea-tute@borg

Vemos que se ha creado el repositorio en la ruta especificada y ahora, a modo de ejemplo vamos a respaldar todos los ficheros de la carpeta /home/vozidea/documentos. Para esto, Borg emplea el concepto de «archivo», que se usa para identificar cada respaldo que se hace en un mismo repositorio. En nuestro caso emplearemos un «archivo» al que identificaremos con el nombre del día de la semana, quedando el comando tal y como vemos a continuación:
sudo borg create /home/vozidea/mirepositorio::Martes /home/vozidea/documentos

Nos pedirá la passphrase nuevamente y lo que habremos creado es un respaldo de la carpeta /home/vozidea/documentos en el repositorio mirepositorio e identificaremos este respaldo con el archivo Martes.

Ahora nos imaginamos que ha pasado un día y que ya estamos a miércoles, por lo que queremos crear una nueva copia de seguridad de la carpeta /home/vozidea/documentos. Para ello ejecutamos el siguiente comando:
sudo borg create /home/vozidea/mirepositorio::Miercoles /home/vozidea/documentos

Nos solicitará la passphrase una vez más y ahora nuestro repositorio tendrá dos archivos, uno con el respaldo hecho el martes y otro con los archivos nuevos o modificados correspondientes al miércoles.

Debemos tener en cuenta que el algoritmo de compresión empleado por defecto es lz4, aunque también podemos optar por zlib, lzma o sin compresión con los siguientes comandos:

  • sudo borg create --compression zlib,N /home/vozidea/mirepositorio::Miercoles /home/vozidea/documentos
  • sudo borg create --compression lzma,N /home/vozidea/mirepositorio::Miercoles /home/vozidea/documentos
  • sudo borg create --compression none /home/vozidea/mirepositorio::Miercoles /home/vozidea/documentos

Cuando empleamos un algoritmo de compresión, vemos que está separado por una coma la letra N, esta debemos reemplazarla por el nivel de compresión deseado, siendo 0 sin compresión y 9 el nivel máximo. El comando para usar el algoritmo lzma con un nivel de compresión máximo sería:
sudo borg create --compression lzma,9 /home/vozidea/mirepositorio::Miercoles /home/vozidea/documentos

Podemos listar los archivos de un repositorio con el comando:
sudo borg list /home/vozidea/mirepositorio

También podemos listar el contenido de un archivo con el comando:
sudo borg list /home/vozidea/mirepositorio::Miercoles

Restaurando copias de seguridad con Borg.

Ahora mostraremos un ejemplo básico para restaurar los ficheros de las copias de seguridad que creamos en el apartado anterior.

Para restaurar un archivo, emplearemos el comando:
sudo borg extract /home/vozidea/mirepositorio::Miercoles

Eliminar un archivo de un repositorio de Borg.

Podemos optar por eliminar un archivo de un repositorio, para ello usaremos el comando:
sudo borg delete /home/vozidea/mirepositorio::Miercoles

Hasta aquí el uso básico, pero os animo a que reviséis la página de oficial de documentación, ya que es muy completa y os resolverá casi cualquier duda, aunque tened en cuenta que está en inglés.