No elimines un padre de Btrfs send porque parezca antiguo. Primero demuestra que existe una instantánea de solo lectura más reciente en ambos lados y que puede servir para el siguiente ciclo incremental.
En un NAS doméstico, las instantáneas de origen y destino suelen tener nombres similares, aunque sus funciones en la replicación sean diferentes. La limpieza se vuelve arriesgada cuando un trabajo de rotación solo considera la antigüedad y no qué par sirve de anclaje para el siguiente envío. Comienza con un inventario de solo lectura, identifica el último par de origen a destino completado correctamente, prueba un hijo más reciente con ese par y conserva el destino anterior hasta que se complete otra recepción incremental.
Inventaría el par de padres actual en ambos sistemas
Enumera el subvolumen de origen, todas las instantáneas de envío de solo lectura y todas las instantáneas de destino recibidas. Registra la ruta, la hora de creación, el estado de solo lectura, el ID del subvolumen, el UUID, la relación con el padre y la identidad recibida, cuando esté disponible. Empareja la última instantánea de origen completada correctamente con la copia que realmente se recibió, no simplemente con un directorio de nombre similar.
Una secuencia funcional de envío y recepción de Btrfs mantiene disponible la instantánea anterior en ambos sistemas antes de usarla como padre del siguiente flujo incremental.
Si el par está claramente presente y es de solo lectura, márcalo como protegido. Si solo coinciden los nombres, inspecciona la relación de recepción y el registro de replicación antes de continuar. Si falta la copia de destino, detén la limpieza y planifica un nuevo envío completo u otra base verificada; eliminar la instantánea de origen no puede reparar el historial que falta en el receptor.
Demuestra que una instantánea más reciente puede convertirse en el siguiente padre
Crea la siguiente instantánea de origen de solo lectura después de guardar el inventario. Usa la instantánea de origen protegida como padre explícito y envía el nuevo hijo al destino previsto o a una ruta de preparación. Captura el estado de salida y el registro, y luego compara una muestra de archivos modificados y sin cambios en la instantánea recibida.
Los scripts de replicación incremental deben hacer visible la dependencia. Un flujo de trabajo práctico de rotación de instantáneas solo funciona cuando las instantáneas esperadas por la lógica de envío permanecen en su lugar.
Convierte el nuevo par en candidato para la limpieza solo cuando la recepción se complete correctamente y la instantánea de destino sea legible. Un error de padre no encontrado, una instantánea de origen con permisos de escritura, un conjunto de datos incorrecto o un flujo inesperadamente equivalente a una copia completa indican que la prueba falló. Mantén intacto el par antiguo mientras corriges la ruta o reconstruyes la base.
Limpia solo después de que la función de padre avance
Actualiza el registro de retención antes de eliminar nada. Marca las instantáneas de origen y destino recién verificadas como el par activo, conserva el par inmediatamente anterior como respaldo a corto plazo y previsualiza qué instantáneas antiguas eliminaría el trabajo de limpieza. La vista previa solo debe contener antecesoras que ya no sean necesarias para el siguiente envío o el plan de restauración.
Un cambio de archivo puede incorporarse a una instantánea más reciente y enviarse desde una base existente, por lo que el historial incremental futuro depende de conservar las relaciones entre instantáneas, no de editar una instantánea antigua de solo lectura.
Cancela la limpieza si el padre activo, el par de respaldo, la instantánea recibida más reciente o una instantánea huérfana no verificada aparece en el conjunto de eliminación. Elimina las instantáneas en grupos pequeños y vuelve a enumerar ambos sistemas después de cada grupo. No permitas que trabajos de rotación independientes de origen y destino avancen por separado sin compartir el mismo registro del par protegido.
Ejecuta el siguiente ciclo incremental antes de retirar el respaldo
Después de la limpieza, crea un cambio de archivo controlado y una nueva instantánea de solo lectura. Ejecuta el siguiente envío incremental desde el padre recién promovido. Este segundo ciclo demuestra que el registro de limpieza, el script y el estado del destino coinciden; el primer envío completado correctamente no probó por sí solo el entorno posterior a la limpieza.
Si no se puede eliminar una instantánea porque sigue en uso, separa la lógica de retención de la ruta activa de envío de Btrfs antes de concluir que el mapa de padres es incorrecto.
La lista de comprobación se supera cuando el segundo hijo se recibe correctamente, los archivos esperados están presentes, el par activo sigue siendo de solo lectura y la siguiente ejecución programada lo selecciona automáticamente. Retira el respaldo solo después de ese resultado. Detente y devuelve el par anterior al estado protegido si el siguiente envío informa de que falta el padre, apunta al subvolumen equivocado o propone una transferencia completa inesperada.
Soporte y Consejos
Más para leer

Cómo programar tareas de copia de seguridad, olvido y depuración de Restic sin conflictos de bloqueo
Una programación completa de Restic para varios hosts que separa las copias de seguridad frecuentes, la retención delimitada, la depuración física, las comprobaciones, los...

Cómo evitar que los trabajos de depuración de Restic bloqueen las copias de seguridad programadas
Un plan de prevención para repositorios Restic compartidos que separe las ventanas de copia de seguridad de la poda y mantenga intactos el bloqueo,...

Cómo eliminar un bloqueo obsoleto de Restic sin interrumpir una copia de seguridad activa
Un flujo de desbloqueo de Restic mínimamente invasivo que protege las copias de seguridad activas, elimina únicamente el estado obsoleto y confirma la recuperación...

