386 lines
7.5 KiB
Markdown
386 lines
7.5 KiB
Markdown
# 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. |