# Guía Práctica de BorgBackup # https://www.borgbackup.org/ ## ¿Qué es Borg? BorgBackup es una herramienta de backup deduplicado, incremental y opcionalmente cifrado, diseñada para sistemas Unix/Linux. Es muy eficiente en espacio y segura. --- # Instalación ## Ubuntu / Debian ```bash sudo apt update sudo apt install borgbackup ``` ## Installar borgbackup offline Desde otro ordenador con internet, ve a la página de releases de Borg en GitHub:https://github.com/borgbackup/borg/releasesDescarga El binario correspondiente a tu arquitectura (normalmente borg-linux64 o borg-linux64-glibc228 si tu sistema es antiguo). Elige la versión estable más reciente de la serie 1.x (actualmente alrededor de 1.4.x). Copia el archivo al equipo sin internet (por USB, pendrive, red local, etc.). En el equipo objetivo: ```bash chmod +x borg-linux64 * hazlo ejecutable sudo cp borg-linux64 /usr/local/bin/borg sudo chown root:root /usr/local/bin/borgsudo chmod 755 /usr/local/bin/borg ``` opcional (para el comando borgfs):sudo ln –s /usr/local/bin/borg /usr/local/bin/borgfs verifica: borg --version ## macOS (Homebrew) ```bash brew install borgbackup ``` Verificar instalación: ```bash borg --version ``` ## Windows (WSL) En PowerShell como administrador: ``` wsl --install ``` Reinicia el equipo si lo pide. Instalar Borg dentro de Ubuntu (WSL) Abre Ubuntu desde el menú inicio y ejecuta: ``` sudo apt update sudo apt install borgbackup ``` Verifica: ``` borg --version ``` 📂 Acceder a tus archivos de Windows desde WSL Tus discos Windows están en: /mnt/c Ejemplo: ``` borg create /mnt/d/backups/borg_repo::backup1 /mnt/c/Users/TU_USUARIO/Documents ``` Conceptos Importantes - \*\*Repositorio (Repo):\*\* Lugar donde se almacenan los backups. - \*\*Archive (Snapshot):\*\* Cada backup individual dentro del repositorio. - \*\*Deduplicación:\*\* Solo guarda bloques nuevos o modificados. - \*\*Incremental real:\*\* Cada backup parece completo, pero solo guarda cambios. - \*\*Prune:\*\* Elimina snapshots antiguos según reglas. - \*\*Compact:\*\* Recupera espacio tras borrar snapshots. ------------------------------------------------------------------------ Crear un Repositorio Con cifrado (recomendado) ``` borg init --encryption=repokey /ruta/al/repositorio ``` Sin cifrado ```bash borg init --encryption=none /ruta/al/repositorio ``` --- # Crear un Backup ```bash borg create --stats --progress /ruta/al/repositorio::nombre-backup /ruta/a/respaldar ``` Ejemplo: ```bash borg create --stats --progress /mnt/backup_usb/ocis_borg::ocis-2026-02-11 /srv/ocis ``` ```bash borg create --stats --progress \ /mnt/backup_usb/ocis_borg::ocis-$(date +%Y-%m-%d_%H-%M) \ /srv/ocis ``` ```bash borg create --stats --progress \ /ruta/al/repositorio::backup-{now:%Y-%m-%d} \ /ruta/a/respaldar ``` Esto creará backups como: backup-2026-02-23 backup-2026-02-24 ### Opciones útiles - `--stats` → Muestra estadísticas al finalizar. - `--progress` → Muestra progreso en tiempo real. - `--compression lz4` → Compresión rápida (recomendado). - `--dry-run` → Simulación sin ejecutar realmente. --- # Listar Backups Disponibles ```bash borg list /ruta/al/repositorio ``` --- # Restaurar Backup Completo ```bash cd / borg extract /ruta/al/repositorio::nombre-backup con progreso borg extract --progress /ruta/al/repositorio::nombre-backup ``` --- # Restaurar Archivo o Carpeta Específica Se necesita FUSE: 1. Linux sudo apt install fuse3 2. WSL sudo apt install fuse3 3. MacOs https://macfuse.github.io/ Montar snapshot: ```bash mkdir /mnt/tmp borg mount /ruta/al/repositorio::nombre-backup /mnt/tmp ``` Explorar y copiar archivos necesarios. Desmontar: ```bash umount /mnt/tmp ``` Si se quiere restaurar en otra carpeta: cd /tmp borg extract /Users/jesus/test_repo::backup4 # Eliminar Backups Antiguos (Prune) Ejemplo típico: ```bash borg prune -v --list /ruta/al/repositorio --keep-daily=7 --keep-weekly=4 --keep-monthly=6 ``` Luego compactar: ```bash borg compact /ruta/al/repositorio ``` --- # Eliminar repositorio-backup Eliminar un repositorio Borg completo - carpeta ```bash rm -rf /mnt/backup_usb/ocis_borg ``` Borrar backups (archives) pero mantener el repo 1. Borrar el repositorio completo Este comando elimina el repositorio junto con todos los archivos (archives) contenidos en él, además de borrar el caché local asociado. Comando estándar: ```bash borg delete /ruta/al/repositorio ``` En versiones más recientes (Borg 1.2+): Se recomienda usar el comando específico: ```bash borg repo-delete /ruta/al/repositorio ``` Usa el código con precaución. [!IMPORTANT] Al ejecutarlo, el sistema te pedirá confirmación escribiendo YES en mayúsculas para proceder con la eliminación irreversible. 2. Opciones adicionales útiles Simulación (--dry-run): Para ver qué se borraría sin ejecutar la acción real, usa: ``` bash borg delete --list --dry-run /ruta/al/repositorio. ``` Conservar info de seguridad (--keep-security-info): Útil si planeas reemplazar un repositorio corrupto con una copia pero quieres mantener los contadores de seguridad (nonces) locales. Solo caché local (--cache-only): Si solo quieres limpiar los archivos temporales locales del repositorio sin borrar los datos en el servidor/disco. 3\. Liberar espacio en disco Si solo borraste archivos (archives) individuales dentro del repositorio y no el repositorio completo, el espacio no se liberará automáticamente. Debes ejecutar el comando de compactación: ``` bash borg compact /ruta/al/repositorio ``` Borrar un backup específico: ``` bash borg delete /mnt/backup_usb/ocis_borg::ocis-2026-02-11_18-30 ``` Después: (Para recuperar espacio real) ``` bash borg compact /mnt/backup_usb/ocis_borg ``` --- # Verificar Integridad ```bash borg check /ruta/al/repositorio ``` --- # Exportar Clave (Si usas cifrado) ```bash borg key export /ruta/al/repositorio /ruta/segura/clave.key ``` ⚠️ Si pierdes la passphrase y la clave, el backup no se puede recuperar. --- # Información de un repo ```bash borg info /Users/jesus/test_repo ``` Te mostrará algo como: Repository ID: xxxxx Location: /Users/jesus/test_repo Number of archives: 5 Original size: 120 GB Compressed size: 80 GB Deduplicated size: 10 GB Ver tamaño de cada backup individual ```bash borg info /Users/jesus/test_repo::backup4 ``` --- IMPORTANTE PARA MANTENER ESTRUCTURA DE CARPETAS: ### Hacer backup desde `/` ``` cd / borg create /mnt/backup_usb/borg_repo::ocis-$(date +%F_%H-%M) srv/ocis ``` --- ### Restaurar ``` cd / borg extract /mnt/backup_usb/borg_repo::ocis-xxxx ``` Si haces: ``` cd /srv/ocis borg create repo::backup . ``` ### Opciones útiles: Ver qué contiene un backup: ```borg list /backups/repositorio::backup-2026-05-09``` Extraer sin preservar permisos/owner: ```borg extract --numeric-ids --noacls --noxattrs ...``` Mostrar progreso: ```borg extract --progress /destino repo::archivo``` # Buenas Prácticas - Probar restauraciones periódicamente. - Guardar la passphrase en lugar seguro. - No guardar el backup en el mismo disco que los datos. - Desmontar correctamente discos externos. - Usar cifrado si el disco puede perderse o salir del entorno físico. --- # Flujo Típico de Uso Manual 1. Montar disco externo. 2. Parar servicio (ej. Docker). 3. Ejecutar `borg create`. 4. Arrancar servicio. 5. Desmontar disco. --- # Resumen Borg es: - Rápido - Seguro - Incremental - Deduplicado - Ideal para servidores Linux y Docker Un backup no probado no es un backup.