forma más eficiente y segura de hacer una copia de seguridad diferencial completa con rsync

forma más eficiente y segura de hacer una copia de seguridad diferencial completa con rsync

Estaba buscando en la red una manera de hacer una copia de seguridad completa de mi máquina Linux (no de un servidor) y restaurar todo en cualquier momento.

Comencé con la guía más vinculada en cada hilo,http://www.mikerubel.org/computers/rsync_snapshots/index.htmly pensé que este tipo de copia de seguridad era una copia de seguridad incremental, después de otro día de investigación encontré ¿Cuál es la diferencia entre copia de seguridad diferencial e incremental en términos del comando rsync?y otras discusiones, pero no estoy seguro de lo que realmente estoy haciendo.

Siguiendo la guía y las publicaciones, decidí probar con una sola carpeta (antes de realizar la copia de seguridad de todo el sistema) llamada fuente

rsync -av --delete /home/user/source /home/user/backup/backup0/

luego agregué y eliminé algunos archivos e hice la copia de seguridad tres veces más

rsync -avH --delete --link-dest=/home/user/backup/backup0 /home/user/source /home/user/backup/backup1 

rsync -avH --delete --link-dest=/home/user/backup/backup1 /home/user/source /home/user/backup/backup2

rsync -avH --delete --link-dest=/home/user/backup/backup2 /home/user/source /home/user/backup/backup3

Pensé que con este tipo de respaldo iba a tener algo como:

backup0-->backup1-->backup2-->backup3

Entonces, si quería restaurar el contenido de "backup3", se necesitaban los números 1 y 2, pero los eliminé y luego restauré el backup3, y todo volvió a su lugar. Entonces corrí

user@user:/backup$ du -sh *
450M    backup0
620K    backup1
624K    backup2
628K    backup3

Parece una copia de seguridad diferencial, no incremental, pero pensé que para ser diferencial tendría que configurarla para cada copia de seguridad. --link-dest=/home/user/backup/backup0

Mi pregunta es: ¿Me estoy equivocando en algo? ¿Existe una mejor manera de hacer una copia de seguridad de un sistema completo usando rsync?

PD: el dispositivo de destino será una unidad externa con el mismo sistema de archivos.

Respuesta1

Con los enlaces físicos, se pueden almacenar varias copias de un archivo y solo ocupa el espacio en disco de una copia. Lo que está viendo es dutener cuidado de no contar dos veces el espacio que ocupan varios enlaces físicos al mismo archivo.

Si tuvieras que ejecutar:

du -sh backup3

Descubrirá que backup3 ocupa aproximadamente 450 M. Si tu corres:

du -sh backup2 backup3

Descubrirá que la copia de seguridad2 ocupa unos 450 millones, mientras que la copia de seguridad3 ocupa muy poco. Esto se debe a que duprimero revisó backup2 y contó su espacio. Cuando revisó la copia de seguridad3, solo contó el nuevo espacio en disco utilizado y no los enlaces duros a los archivos que ya se habían contado en la copia de seguridad2.

Cada copia de seguridad está completa y tiene todo lo que necesitas para realizar una restauración completa. Sin embargo, debido a que los archivos están vinculados de forma física, el espacio total en disco utilizado es mucho menor.

Ejemplo

Puse un archivo de 1,2 MB en el directorio src/. Creemos dos copias de seguridad:

$ rsync -a src backup1
$ rsync -a --link-dest=../backup1 src backup2

Veamos qué tan grande es backup2:

$ du -sh backup2
1.2M    backup2

backup2 tiene 1,2 megabytes. Ahora veamos qué tan grandes son backup1 y backup2:

$ du -sh backup1 backup2
1.2M    backup1
8.0K    backup2

Ahora, backup2 parecería tener solo 8k. Esto se debe a que los enlaces físicos no se cuentan dos veces.

Respuesta2

Los enlaces duros son la mejor manera de ahorrar espacio en disco. En lugar de escribir scripts con rsync, uso un contenedor que hace este trabajo:Copia de seguridad de mariposa.

Este contenedor utiliza rsync puro y transforma rsync en una herramienta real de copia de seguridad/restauración (también tiene modos de archivo/exportación).

Además, en sus opciones tiene la --mode/-mbandera que permite seleccionar el modo de copia de seguridad entreincrementaloDiferencial.

El modo diferencial mantendrá la primera copia de seguridad completa y luego todas las copias de seguridad siguientes se conectarán a ella, ahorrando mucho espacio gracias a los enlaces físicos.

Un ejemplo:

$ bb backup --computer mypc --destination /backup --data User --type Unix
 --mode Differential

información relacionada