%3F.png)
No puedo entender lo que hace la bandera -b. Según la documentación oficial:
Con esta opción, los archivos de destino preexistentes cambian de nombre a medida que se transfiere o elimina cada archivo.
Pero no entiendo lo que esto significa. ¿Cómo se puede cambiar el nombre de un archivo que se está eliminando? ¿Cómo se relaciona el cambio de nombre de archivos con las copias de seguridad? No se cambió el nombre de ningún archivo después de invocar rsync con -b:
rsync --delete -bavh
Y cuando reviso diferentes tutoriales, nunca usan esta opción, entonces, ¿es realmente útil?
¿Cuál sería la diferencia entre
rsync --delete -bavh
y
rsync --delete -avh
Además, puede que no sea útil, pero mi caso de uso es el siguiente: quiero hacer una copia de seguridad de mi escritorio en una unidad WebDAV montada. La copia de seguridad se ejecutará todos los días a una hora determinada de forma automática.
Respuesta1
El propósito de esta backup
opción es conservar una copia de cualquier archivo sobrescrito y/o eliminado.
Se puede utilizar para --backup-dir
mantener estos archivos en otro directorio que no sea el directorio de destino.
Además, puede especificar un sufijo de respaldo usando la --suffix
opción que se agregará al nombre del archivo. Sin él, los archivos respaldados en el backup-dir
directorio especificado mantendrán sus nombres de archivo originales. Con él, se puede cambiar el nombre de los archivos y permanecer en el directorio original (lo que significa que backup-dir
no es necesario).
Por lo tanto, se requiere backup-dir
o cuando se usa.--suffix
backup
Respuesta2
Jugó con esto. Esto es lo que descubrí.
Utilice --backup y --backup-dir para crear una especie de copia de seguridad incremental.
Digamos que tienes este código:
# test date with a timestamp:
date +%F_%H-%M-%S
2024-03-06_19-48-08
#
SRC=your/cooldir
DST=backups
INCDIR="${DST}/inc_$(date +%F_%H-%M-%S)"
rsync -avh --backup --backup-dir="$INCDIR" "$SRC/" "$DST/"
Cuando ejecuta esto por primera vez, obtiene backups/cooldir, que es una copia de seguridad completa (una sincronización espejo) de su/cooldir.
Ahora agregue un archivo newfile.txt a su/cooldir. Ejecute el código nuevamente. No se eliminaron ni cambiaron archivos, por lo que no se crea INCDIR.
Ahora elimine su/cooldir/newfile.txt. Ejecute el código nuevamente. Dado que ese archivo se eliminó y se especificaron --backup y --backup-dir, obtienes backups/cooldir como antes (una copia de seguridad completa), pero también obtienes el directorio backups/inc_2024-03-06_19-57-23. Dentro de ese directorio incremental obtienes newfile.txt. Está ahí porque fue eliminado.
Puede intentar esto nuevamente creando newfile2.txt, ejecútelo y luego, en la segunda ejecución, simplemente modifique newfile2.txt (no lo elimine). Obtendrá nuevamente el archivo newfile2.txt en la carpeta backups/inc_xx.
Ahora prueba el código pero cambia esta línea:
INCDIR="${DST}/inc_$(date +%F)"
Y vuelva a ejecutar estos escenarios. La primera vez obtendrás newfile.txt en backups/inc_2024-03-06. La segunda vez tendrás newfile.txt y newfile2.txt en el mismo directorio. En otras palabras, --backup y --backup-dir no son exactamente una copia de seguridad incremental. Es más una acumulación de los últimos cambios/eliminaciones de archivos.
Finalmente, prueba este cambio:
rsync -avh --backup "$SRC/" "$DST/"
Esta vez se cambia el nombre de los archivos modificados y eliminados con una tilde, por ejemplo, nuevoarchivo.txt~