Digamos que tengo un directorio con archivos:
a b c d
Entonces copio con rsync:
rsync -av --delete -P --backup --backup-dir=sample-$(date +%a-%H%M) ../sample /backups
Entro en /backup/sample:
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 a
Pero si creo un directorio:
a b c d newdir
Solo entro en /backup/sample:
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 d
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 c
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 b
-rw-r--r-- 1 sergio sergio 0 feb 17 18:31 a
drwxr-xr-x 2 sergio sergio 8192 feb 17 18:52 newdir
Sin embargo, si elimino un archivo:
/backups
├── sample
│ ├── a
│ ├── b
│ ├── c
│ └── newdir
└── sample-sáb-1855
└── sample
└── d
Entonces, ¿por qué rsync no crea una 'fecha de muestra...' en la primera modificación (creación de un nuevo directorio)? ¿Es ese el comportamiento esperado?
Respuesta1
Dersync(1)
-b, --copia de seguridad
Con esta opción,archivos de destino preexistentescambian de nombre a medida que se transfiere o elimina cada archivo. Puede controlar dónde va el archivo de copia de seguridad y qué sufijo (si corresponde) se agrega usando el--directorio-copia de seguridady--sufijoopciones.
Las dos primeras veces, sólo se transfieren archivos nuevos, por lo que no es necesario crear copias de seguridad.
En la tercera llamada, el archivo sample/d
se elimina y ahora la opción --backup
le indica a rsync que cree una copia de seguridad de sample/d
. Esta copia de seguridad se crea en el directorio de copia de seguridad /backups
+ sample-$(date +%a-%H%M)
.
Lo mismo sucedería si modifica alguno de los archivos existentes. Por ejemplo, cambiar el archivo sample/a
crearía una copia de seguridad a
en el directorio de copia de seguridad /backups/sample-$(date +%a-%H%M)
.
Si desea crear una copia de seguridad versionada, preferirá proporcionar un directorio de destino diferente cada vez que se ejecute rsync
rsync -av --delete -P ../sample /backups/sample-$(date +%a-%H%M)