TL;DR — Resumen Rápido

Borgmatic automatiza copias cifradas y deduplicadas con BorgBackup en Linux. Configura YAML, agenda con systemd y aplica estrategia 3-2-1 de respaldos.

Borgmatic convierte la potente pero verbosa CLI de BorgBackup en una configuración YAML declarativa — un solo archivo gestiona respaldos cifrados, deduplicados y comprimidos con políticas de retención, verificaciones de consistencia, hooks de base de datos y notificaciones de monitoreo.

Requisitos Previos

  • Servidor Linux (Ubuntu 20.04+, Debian 11+, RHEL 8+ o similar)
  • Python 3.8+ (para pip install) o acceso a apt/dnf
  • Acceso SSH a un destino de respaldo remoto
  • Acceso root o sudo

Fundamentos de BorgBackup

  • Deduplicación — Borg divide archivos en trozos de tamaño variable y almacena cada trozo único una sola vez.
  • Cifrado — El modo repokey-blake2 almacena una clave cifrada con AES-256-CTR protegida por tu frase de contraseña.
  • Compresiónlz4 (rápido), zstd (equilibrado) o lzma (máximo). zstd,3 es el predeterminado moderno.
  • Modo solo-anexar — Los repositorios pueden configurarse en modo append-only para que incluso un cliente comprometido no pueda eliminar archivos existentes.

Paso 1: Instalar y Configurar

Instalar:

pip install --upgrade borgmatic
# o
apt install borgmatic

Generar configuración:

mkdir -p /etc/borgmatic
borgmatic config generate --destination /etc/borgmatic/config.yaml

Configuración mínima para servidor web:

source_directories:
  - /etc
  - /var/www
  - /home

repositories:
  - path: /var/backup/local-borg
    label: local
  - path: ssh://backup@192.168.1.100/~/backups/servidor
    label: remoto-lan

storage:
  encryption_passphrase: "tu-frase-de-contraseña-larga-y-aleatoria"
  compression: "zstd,3"

retention:
  keep_daily: 7
  keep_weekly: 4
  keep_monthly: 6
  keep_yearly: 1

postgresql_databases:
  - name: mi_app_produccion
    username: postgres
    format: custom

hooks:
  after_backup:
    - curl -fsS https://hc-ping.com/tu-uuid > /dev/null
  on_error:
    - echo "Respaldo FALLIDO en $(date)" | mail -s "Error de Respaldo" admin@ejemplo.com

Paso 2: Inicializar el Repositorio

borgmatic init --encryption repokey-blake2

Exportar y guardar la clave fuera de línea:

borg key export /var/backup/local-borg /root/clave-borg-respaldo.txt

Paso 3: Ejecutar y Programar Respaldos

borgmatic create --verbosity 1 --list --stats  # primer respaldo
borgmatic          # crear + podar + compactar + verificar
borgmatic prune    # aplicar política de retención
borgmatic compact  # recuperar espacio liberado
borgmatic check    # verificar integridad

Habilitar timer de systemd:

systemctl enable --now borgmatic.timer

Paso 4: Restaurar

borgmatic list                    # ver archivos disponibles
borgmatic info --archive latest   # detalles del archivo más reciente
borgmatic extract --archive latest --path /var/www/miapp --destination /tmp/restaurar
borgmatic restore --archive latest --database mi_app_produccion

Comparación: Borgmatic vs Alternativas

CaracterísticaBorgmaticResticDuplicatiKopia
CifradoAES-256-CTRAES-256-CTRAES-256AES-256-GCM
Deduplicación
ConfigYAMLCLIGUI/XMLGUI/CLI
Hooks DBNativo (PG, MySQL)Scripts externosNoNo
Solo-anexarNoNoNo
Destinos remotosSSH, SFTPS3, B2, SFTPFTP, S3, WebDAVS3, B2, SFTP

Errores Comunes

ProblemaSolución
Failed to create/acquire the lockEjecutar borgmatic borg break-lock /ruta/repo
Repository is not a valid Borg repositoryRuta incorrecta o repo no inicializado; ejecutar borgmatic init
Passphrase incorrectVerificar encryption_passphrase en la configuración
Connection closed by remote hostClave SSH no añadida o borg serve no en authorized_keys

Resumen

  • BorgBackup proporciona deduplicación, cifrado AES-256, compresión y modo solo-anexar.
  • Borgmatic envuelve Borg en un único config YAML cubriendo create, prune, compact, check y hooks.
  • Timer de systemd gestiona la programación con RandomizedDelaySec.
  • Hooks de base de datos garantizan volcados consistentes de PostgreSQL y MySQL.
  • Estrategia 3-2-1 implementada listando múltiples repositorios en la configuración.
  • Siempre prueba las restauraciones antes de necesitarlas.

Artículos Relacionados