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-blake2almacena una clave cifrada con AES-256-CTR protegida por tu frase de contraseña. - Compresión —
lz4(rápido),zstd(equilibrado) olzma(máximo).zstd,3es 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ística | Borgmatic | Restic | Duplicati | Kopia |
|---|---|---|---|---|
| Cifrado | AES-256-CTR | AES-256-CTR | AES-256 | AES-256-GCM |
| Deduplicación | Sí | Sí | Sí | Sí |
| Config | YAML | CLI | GUI/XML | GUI/CLI |
| Hooks DB | Nativo (PG, MySQL) | Scripts externos | No | No |
| Solo-anexar | Sí | No | No | No |
| Destinos remotos | SSH, SFTP | S3, B2, SFTP | FTP, S3, WebDAV | S3, B2, SFTP |
Errores Comunes
| Problema | Solución |
|---|---|
Failed to create/acquire the lock | Ejecutar borgmatic borg break-lock /ruta/repo |
Repository is not a valid Borg repository | Ruta incorrecta o repo no inicializado; ejecutar borgmatic init |
Passphrase incorrect | Verificar encryption_passphrase en la configuración |
Connection closed by remote host | Clave 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.