Copias de Seguridad Profesionales (PARTE 1): Una solución para el escritorio local

Linux Nivel Medio 17 de jul. de 2026

BORGBACKUP Y SU INTERFAZ VORTA

¿Cuándo fue la última vez que hiciste una copia de seguridad? Y no, no vale decir que “tienes las fotos importantes en Google Drive” o que “de vez en cuando arrastras carpetas a un disco duro externo”. En una época marcada por el ransomware, los fallos de hardware aleatorios y la pérdida progresiva de nuestra privacidad, la soberanía de nuestros datos es innegociable.

Si eres usuario de Debian, la receta clásica de un script con rsync y cron está bien para empezar, pero se queda muy corta en el ámbito profesional. Necesitamos algo rápido, cifrado, que ahorre espacio de verdad y que sea inmune a miradas indiscretas.

Hoy vamos a descubrir BorgBackup, el estándar de oro de los backups en Linux, y cómo domarlo fácilmente desde el escritorio gracias a Vorta, su interfaz gráfica oficial en Qt.

¿Por qué BorgBackup y no el clásico rsync?

La mayoría de los usuarios de Linux conocen rsync. Es una herramienta fantástica, pero cuando manejas gigabytes (o terabytes) de información diaria, descubres sus limitaciones. BorgBackup destaca gracias a tres pilares fundamentales:

  • Deduplicación real: Borg no copia archivos enteros. Trocea tus datos en bloques y solo guarda aquellos fragmentos que han cambiado. Si tienes diez copias de un PDF de 100 MB modificado levemente, Borg solo almacenará el archivo original y los pequeños cambios, ahorrando hasta un 80% de espacio en disco.
  • Cifrado en el lado del cliente (Zero-Knowledge): Tus datos se cifran con AES de 256 bits antes de salir de tu ordenador. Ni tu proveedor de almacenamiento en la nube ni nadie que intercepte el tráfico podrá saber qué estás respaldando.
  • Velocidad de vértigo: Al no tener que transferir archivos redundantes, los backups diarios se completan a menudo en cuestión de segundos.

El compañero ideal para el escritorio: Vorta

BorgBackup es, por naturaleza, una herramienta de línea de comandos. Aunque para un SysAdmin en un servidor Debian sin entorno gráfico es ideal, en nuestro equipo de diario preferimos la comodidad visual.

Aquí es donde entra Vorta. Esta aplicación de escritorio nos permite gestionar nuestros perfiles, programar tareas automatizadas, montar copias de seguridad anteriores como carpetas normales para recuperar archivos sueltos y verificar el estado de nuestros repositorios de un solo vistazo.

BorgBackup: Instalación, Configuración y Uso en Debian

Debido a la filosofía de estabilidad de Debian, podemos instalar Borg de manera sencilla.
En Debian 12 (Bookworm) y el actual Debian 13 (Trixie), el paquete se encuentran en los repositorios oficiales.

Esta parte del artículo está diseñada para servir como guía de referencia rápida para administradores de sistemas y usuarios avanzados, prescindiendo de capas gráficas y abstrayendo el comportamiento del motor (sencillamente nos vamos a la consola negra)

1. Fundamentos Técnicos y Arquitectura

BorgBackup basa su almacenamiento en un enfoque de deduplicación basada en fragmentación definida por contenido (CDC - Content-Defined Chunking). A diferencia de los sistemas tradicionales basados en archivos o deltas rígidos, Borg analiza los flujos de datos entrantes mediante un algoritmo de Rolling Hash (generando bloques de tamaño dinámico entre 256 KB y 4 MB).

Beneficios estructurales:

  • Aislamiento Criptográfico: Cifrado autenticado en el lado del cliente (Authenticated Encryption con datos asociados - AEAD) usando primitivas AES-256-CTR y códigos de autenticación de mensajes HMAC-SHA256.
  • Inmutabilidad Lógica: Los archivos dentro del repositorio de Borg se empaquetan en archivos "Segmento". Un segmento escrito nunca se modifica directamente, lo que previene la corrupción en caso de interrupción del proceso.

2. Fase de Despliegue e Instalación

Para garantizar el rendimiento óptimo de las librerías criptográficas de Python (python3-msgpack, liblz4, libzstd), procedemos a la instalación del binario compilado nativo desde los repositorios de producción de Debian.

# Actualización de índices e instalación del paquete nativo
sudo apt update
sudo apt install -y borgbackup

# Verificación de la versión instalada y arquitecturas soportadas
borg --version

3. Inicialización del Repositorio y Estrategia de Cifrado

El primer paso es definir el "contenedor" o repositorio. Borg exige la selección de un modo de cifrado. Para un entorno de escritorio avanzado o servidor de almacenamiento local, el estándar recomendado es repokey-blake2.

  • repokey: Guarda la llave simétrica cifrada dentro del propio repositorio (protegida por tu frase de paso).
  • blake2: Utiliza el algoritmo BLAKE2b para la suma de verificación (checksums), siendo significativamente más rápido que SHA256 en procesadores de 64 bits modernos.

Escenario práctico:

Inicializaremos el repositorio en un punto de montaje de un disco externo situado en:
/media/user/BackupDisk/borg_repo.

# Inicializar el repositorio cifrado
borg init --encryption=repokey-blake2 /media/user/BackupDisk/borg_repo
REQUERIMIENTO CRÍTICO: El sistema solicitará interactivamente una Passphrase (Frase de paso). Sin esta clave, los metadatos y los bloques binarios serán permanentemente inaccesibles debido al cifrado Zero-Knowledge.

4. Ejecución del Respaldo (Backup Multi-Directorio)

Para consolidar la copia en la consola, se utiliza el subcomando borg create. La sintaxis requiere la definición del repositorio seguido de una etiqueta única para el snapshot (es estándar usar la nomenclatura ::nombre-backup o incluir variables de tiempo).

Ejemplo:

Se realizará la copia simultánea de tres directorios críticos del usuario (Documentos, Proyectos y .config), excluyendo de manera explícita directorios de caché, dependencias de desarrollo (node_modules) y contenedores virtuales pesados.

# Ejecución de la copia con compresión ZSTD media (nivel 3) y estadísticas detalladas
borg create --verbose --progress --stats --compression zstd,3 \
    /media/user/BackupDisk/borg_repo::desktop-backup-$(date +%Y-%m-%d) \
    /home/soloconlinux/Documentos \
    /home/soloconlinux/Proyectos \
    /home/soloconlinux/Configuraciones \
    --exclude '*/.cache' \
    --exclude '*/node_modules' \
    --exclude '*/VirtualBox VMs'

Desglose de flags técnicos:

  • --stats: Muestra al finalizar el volumen real de datos modificados y la eficiencia exacta de la deduplicación.
  • --compression zstd,3: Aplica el algoritmo Zstandard de Facebook, el cual ofrece una relación velocidad/compresión muy superior a Gzip o Bzip2.
  • ::desktop-backup-...: Genera un identificador único basado en la fecha del sistema (ej. desktop-backup-2026-07-17).

5. Inspección y Auditoría del Repositorio

Un administrador de sistemas nunca asume que un backup es correcto sin verificar los índices. Borg ofrece comandos nativos de auditoría:

5.1. Listar las instantáneas disponibles

Permite visualizar la línea temporal de copias almacenadas en el disco externo:

Bash

borg list /media/user/BackupDisk/borg_repo

5.2. Inspeccionar el contenido interno de un backup específico

Si deseamos auditar exactamente qué archivos se empaquetaron dentro del snapshot del día:

Bash

borg list /media/user/BackupDisk/borg_repo::desktop-backup-2026-07-17

6. Proceso de Recuperación de Datos (Restore)

La recuperación se puede realizar mediante dos métodos: extracción cruda o montaje del sistema de archivos.

Método A: Extracción selectiva (borg extract)

Este método extrae los archivos directamente al directorio de trabajo actual (pwd).

Nota: Se recomienda moverse primero a una carpeta limpia (ej. /tmp/recuperacion) para evitar sobreescrituras accidentales en producción.

cd /tmp
mkdir recuperacion && cd recuperacion

# Extraer únicamente el directorio 'Proyectos' desde un snapshot específico
borg extract /media/user/BackupDisk/borg_repo::desktop-backup-2026-07-17 home/soloconlinux/Proyectos

Método B: Montaje interactivo vía FUSE (Recomendado para revisión visual)

Si el usuario prefiere inspeccionar los archivos como si de una carpeta normal se tratase, Borg puede mapear el repositorio completo usando el subsistema del kernel FUSE.

mkdir /tmp/punto_montaje

# Montar el repositorio completo en modo lectura
borg mount /media/user/BackupDisk/borg_repo /tmp/punto_montaje

# En este punto el usuario puede usar 'ls', 'cp' o el gestor de archivos en /tmp/punto_montaje

# Al finalizar la recuperación, desmontar de forma segura
borg umount /tmp/punto_montaje

7. Mantenimiento y Poda (Pruning)

Para evitar que el disco externo se sature con históricos redundantes, Borg implementa una lógica de descarte inteligente mediante el comando borg prune. Este comando elimina las referencias de los snapshots que queden fuera de la política definida, manteniendo el control de espacio de forma matemática.

# Aplicar política: mantener las últimas 7 copias diarias, 4 semanales y 6 mensuales
borg prune --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /media/user/BackupDisk/borg_repo

# Liberar físicamente el espacio en el disco duro (Recolección de basura)
borg compact /media/user/BackupDisk/borg_repo
  • borg compact: Reclama el almacenamiento en disco liberado por los segmentos eliminados durante la fase de pruning, compactando la base de datos binaria.

Instalación y Uso de Vorta

Para poder realizar las mismas tareas con BorgBackup, pero desde una aplicación gráfica usaremos vorta

Abrimos nuestra terminal favorita y ejecutamos el siguiente comando como superusuario o mediante sudo:

sudo apt update && sudo apt -y install vorta

Nota: Si por alguna razón estás utilizando una rama antigua de Debian y Vorta no aparece en los repositorios, puedes instalarlo de manera segura mediante Flatpak desde Flathub.

Configurando nuestro primer Backup con Vorta

Para este tutorial, utilizaremos un disco duro externo o una carpeta local (que podría estar montada en red mediante SSH/SFTP) para guardar nuestras copias.

  1. Crear el Repositorio de destino: Seguridad desde el inicio. Abre Vorta. En la pestaña Repository (Repositorio), selecciona la opción para inicializar un nuevo repositorio. Elige la ruta de tu disco externo y, lo más importante, establece una contraseña segura. Esta contraseña derivará las claves de cifrado; si la pierdes, no podrás recuperar tus archivos bajo ningún concepto.
  2. Seleccionar los Orígenes (Sources): ¿Qué vas a salvar?. Pásate a la pestaña Sources. Añade las carpetas críticas de tu directorio personal (/home/tu_usuario/Documentos/home/tu_usuario/Imágenes, etc.). Aprovecha la sección de exclusiones para evitar carpetas pesadas e inútiles como la caché del navegador (.cache) o la papelera.
  3. Automatizar las tareas (Schedule): Olvídate de hacerlo a mano. En la pestaña Schedule, activa el backup automático. Puedes configurarlo para que se realice de fondo cada hora, diariamente o al iniciar sesión. Vorta se encargará de ejecutar Borg de forma silenciosa en segundo plano.
  4. Definir la política de retención (Pruning): Control absoluto del espacio. Borg no llena el disco infinitamente. En la configuración de Vorta puedes definir la regla de “Poda” (Pruning). Por ejemplo: conservar los últimos 7 backups diarios, 4 semanales y 12 mensuales. El espacio antiguo se liberará automáticamente de forma inteligente.

¿Y qué pasa si necesito recuperar un archivo?

La verdadera prueba de fuego de un sistema de copias de seguridad no es cómo guarda los datos, sino cómo los recupera.

Con Vorta es tan fácil como ir a la pestaña Archives (Archivos), donde verás una lista cronológica de todas tus copias. Selecciona el día y la hora que necesitas y haz clic en Mount (Montar).

Automáticamente, Borg creará un directorio virtual en tu explorador de archivos de Debian. Podrás navegar por tus carpetas del pasado como si estuvieran en tu disco actual, copiar el archivo que borraste por error y, al terminar, simplemente pulsar Unmount (Desmontar). Todo de manera instantánea y transparente.


Comparativa entre BorgBackup y GIT

Borgbackup comparte el ADN de Git, y la misma obsesión: no almacenar nunca el mismo dato dos veces y tratar el historial de archivos como una línea de tiempo de “fotos” inmutables.

La magia compartida: El direccionamiento por contenido

Tanto Git como Borg no organizan la información por “nombre de archivo”, sino por el contenido del archivo.

Si tienes un archivo PDF de 50 MB llamado manual.pdf y le cambias el nombre a guia_secreta.pdf sin modificar una sola letra de su interior:

  • El sistema de archivos tradicional (o un backup clásico) pensará que es un archivo nuevo y lo copiará otra vez.
  • Git y Borg calcularán el hash (la huella digital) de su contenido. Al ver que el hash ya existe en su base de datos, simplemente crearán un “puntero” o enlace al archivo que ya tienen guardado. ¡Cero bytes de espacio extra consumidos!

¿En qué se diferencian (y por qué Borg es aún más inteligente con los archivos grandes)?

Aunque conceptualmente son idénticos, Borg va un paso más allá que Git cuando maneja archivos gigantescos (como bases de datos o máquinas virtuales).

  • Git (Blobs completos): Si modificas una sola línea de un archivo de 1 GB, Git (en su estado suelto) tiende a crear un objeto nuevo para todo el archivo (luego lo optimiza con packfiles, pero el proceso es pesado).
  • Borg (Content-Defined Chunking - CDC): Borg no mira el archivo entero. Lo trocea dinámicamente en pedacitos pequeños (de unos pocos kilobytes o megabytes) usando un algoritmo matemático (un rolling hash). Si modificas una línea en mitad de ese archivo de 1 GB, Borg detecta exactamente qué “trozo” ha cambiado. Solo guarda ese pequeño trozo modificado y reutiliza los otros 999 trozos del backup anterior.

Equivalencia de comandos: De Git a Borg

Para que veas que la transición mental de Git a Borg es directa, mira este paralelismo:

AcciónEn GitEn Borg
Crear el repositoriogit initborg init
Hacer una instantáneagit commit -am "Cambios"borg create ::snapshot_hoy /datos
Ver el historialgit log --onelineborg list
Ver qué archivos cambiarongit diff --name-onlyborg diff ::snap1 ::snap2
Borrar historial antiguogit gc --prune=now (recolector de basura)borg prune + borg compact

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux