Para evitar largos intervalos sin copias de seguridad de Borg, ejecuta la poda de retención después de una copia de seguridad exitosa, pero programa la compactación del repositorio con menos frecuencia y fuera de la ventana principal de copias de seguridad. Borg 1.4 separa la eliminación de archivos de la recuperación física de espacio, por lo que no es necesario ejecutar borg compact después de cada borg prune.
Esta guía está dirigida al modelo de comandos estable actual de Borg 1.4.x. Borg 2 cambia la semántica de los repositorios y los archivos en varios aspectos, así que comprueba la versión instalada antes de copiar automatizaciones de otra versión principal.
Confirma la versión de Borg y el repositorio
borg --version
borg info /mnt/backup/borg-repo
borg list /mnt/backup/borg-repo
Las preguntas frecuentes de Borg indican que Borg utiliza un bloqueo para todo el repositorio y que solo un proceso puede tener acceso de escritura a la vez. Si una compactación larga coincide con la siguiente copia de seguridad programada, la copia de seguridad espera a que se libere el bloqueo o falla cuando vence el tiempo de espera del bloqueo.
Define primero la retención con una ejecución de prueba
borg prune es destructivo para el historial de archivos. La documentación de Borg prune recomienda encarecidamente realizar pruebas con --dry-run y --list.
borg prune --dry-run --list --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --glob-archives '{hostname}-*' /mnt/backup/borg-repo
Si un repositorio contiene copias de seguridad de varias máquinas o conjuntos de datos, el filtro de archivos es esencial. Sin un filtro restrictivo, Borg 1.4 considera todos los archivos del repositorio como candidatos para las mismas reglas de retención.
Ejecuta la poda solo después de una copia de seguridad exitosa
#!/bin/sh
set -eu
REPO=/mnt/backup/borg-repo
ARCHIVE='{hostname}-{now:%Y-%m-%d_%H-%M}'
borg create --stats "$REPO::$ARCHIVE" /srv/data
borg prune --list --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --glob-archives '{hostname}-*' "$REPO"
No depures porque se haya activado un programador; depura porque una nueva copia de seguridad se completó correctamente y la política de retención ya se validó.
Comprende por qué la depuración no libera espacio inmediatamente
Desde Borg 1.2, la compactación está separada de los comandos normales de escritura del repositorio. Las notas sobre la compactación independiente de Borg explican que eliminar o depurar archivos no recupera inmediatamente todo el espacio de disco del repositorio.
borg create
|
nuevo archivo confirmado
|
borg prune
|
archivos antiguos eliminados del conjunto de retención
|
borg compact
|
espacio de segmentos no utilizado recuperado
Esto resulta útil para la programación, ya que las copias de seguridad diarias no necesitan asumir el coste total de reescribir segmentos del repositorio parcialmente utilizados.
Programa la compactación con menos frecuencia que la depuración
- copia de seguridad: todas las noches;
- depuración: después de cada copia de seguridad correcta o varias veces por semana;
- compactación: una vez por semana durante un periodo tranquilo;
- comprobación completa del repositorio: en un horario separado y menos frecuente.
# Copia de seguridad y depuración diarias
0 1 * * * /usr/local/sbin/borg-backup
# Compactación semanal
0 4 * * 0 /usr/local/sbin/borg-compact
Si las copias de seguridad suelen tardar varias horas, aleja más la compactación o usa un temporizador con dependencias explícitas.
Usa el umbral de compactación predeterminado antes de forzar reescrituras máximas
La documentación actual de compact utiliza un umbral predeterminado del 10 %.
borg compact --progress /mnt/backup/borg-repo
Ese valor predeterminado es un buen punto de partida cuando tu prioridad es una ventana de mantenimiento breve. Evita usar automáticamente --threshold 0; reescribe cada vez que se puede liberar espacio y puede ser considerablemente más lento en un repositorio grande.
Evita que el mantenimiento coincida con la próxima copia de seguridad
Si un trabajo puede esperar legítimamente a otro proceso de Borg, establece una espera de bloqueo con un límite:
borg --lock-wait 1800 create /mnt/backup/borg-repo::'{hostname}-{now}' /srv/data
No uses una espera de bloqueo muy larga como sustituto de una buena programación. Supervisa cuándo comienza y termina realmente la copia de seguridad.
Si varios clientes comparten un repositorio, escalona sus programaciones. Las preguntas frecuentes de Borg señalan que varios repositorios pueden reducir la contención de bloqueos cuando la deduplicación entre clientes no es importante.
Usa Quick Stats cuando los informes ralentizan prune
Borg 1.4.5 añadió --quick-stats para crear, eliminar y ejecutar prune, evitando las estadísticas más lentas de todo el repositorio cuando no sean necesarias.
borg prune --quick-stats --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --glob-archives '{hostname}-*' /mnt/backup/borg-repo
Mantén espacio libre disponible antes de necesitar compact
No esperes a que el sistema de archivos del repositorio se quede sin espacio libre. Borg no puede realizar de forma fiable las operaciones normales de escritura del repositorio cuando el sistema de archivos está completamente lleno.
df -h /mnt/backup
borg info /mnt/backup/borg-repo
Para un plan de copias de seguridad NAS más amplio, la guía de copias de seguridad 3-2-1 de ZimaOS es un recordatorio útil de que la retención del repositorio es solo una capa del diseño de copias de seguridad.
Valida la programación antes de confiar en ella
- ¿Cada copia de seguridad creó un archivo nuevo?
- ¿prune se ejecutó solo después de realizar correctamente las copias de seguridad?
- ¿El conjunto de retención coincidió con el plan de simulación?
- ¿La compactación semanal terminó antes de la siguiente copia de seguridad?
- ¿Aumentó el espacio libre después de compact?
- ¿Algún trabajo pasó un tiempo inesperado esperando el bloqueo de Borg?
Si compact se solapa repetidamente con la siguiente copia de seguridad, reduce la frecuencia de compactación, mantén el umbral predeterminado, mueve compact a una franja horaria más tranquila o divide las cargas de trabajo no relacionadas en repositorios independientes.
Un patrón de mantenimiento de Borg con poca interferencia
DIARIO
01:00 borg create
|
+-- éxito --> borg prune
|
+-- error --> conservar los archivos antiguos, enviar una alerta
SEMANAL
04:00 borg compact
PERIÓDICO
borg check
restaurar archivos seleccionados
La regla central es simple: prune protege la política de retención; compact recupera espacio de almacenamiento; no es necesario ejecutarlos con la misma frecuencia.
Soporte y Consejos
Más para leer

Home Assistant funciona con Wi-Fi, pero falla con Ethernet o VPN
Prueba cada ruta de red por separado, verifica el estado de la interfaz y del enrutamiento, distingue entre IP directa y descubrimiento, y luego...

Cómo retirar Home Assistant sin dejar datos desprotegidos
Demuestra el reemplazo o archivado, revoca todas las rutas de confianza, sanea cada dispositivo que contenga datos y conserva únicamente copias de recuperación protegidas...

¿Deberías usar actualizaciones automáticas para Home Assistant en un servidor doméstico?
Elige actualizaciones manuales, solo de notificación o automáticas escalonadas según el impacto en el hogar, el riesgo de compatibilidad, el tiempo de observación y...

