
Utilicé el comando "Rsync" para transferir una gran cantidad de datos, desde el sistema de archivos a nfs (aproximadamente 1Tera).
Después de un tiempo, la computadora se apagó y la transferencia se canceló (la transferencia de 600G tardó aproximadamente 10 horas).
Algunos de los sistemas de archivos que se han subido fueron modificados/agregados por los usuarios. Quiero saber que si uso Rsync nuevamente, sin eliminar la transferencia parcial, sabrá que debe ignorar los archivos transferidos y volver a cargar lo que se ha cambiado.
P.D., si existe la opción de reanudar Rsync, ¿los archivos transferidos se ignorarán mucho más rápido de lo que se cargaron la primera vez? Me preocupé porque me tomó 10 horas transferir 600G y espero que el próximo Rsync sea mucho más rápido.
Editar: Aparentemente no puedo comentar las respuestas... así que para @Kusalananda usé rsync -rtzvx
.
Respuesta1
No utilizó las -a
opciones, por lo que no se han conservado las propiedades ni los permisos de los usuarios y grupos. Sin embargo las marcas de tiempo se han debido al uso de -t
.
Cuando reinicie rsync, no podrá utilizar los metadatos anteriores para determinar si el archivo en el destino es el mismo que en el origen. Si tiene suerte, puede usar --size-only
, que le dice a rsync que asuma que el archivo es idéntico si el tamaño es el mismo; Por lo general, esto solo funciona correctamente para cosas como archivos de registro o fotografías.
Sin embargo, es posible que las cosas no sean tan malas como podría pensar: rsync sumará cada archivo tanto en el origen como en el destino, y solo si la suma de verificación muestra una diferencia se transferirán los bloques diferentes. Es decir, no se vuelve a transferir todo el archivo, sino sólo los bloques modificados. Este es el punto fuerte de rsync: optimizar el uso del ancho de banda de la red a costa de más E/S de disco.
Por supuesto, esto supone que rsync se está transfiriendo a través de la red a otro host. Si el sistema de archivos NFS del que habla está montado localmente, entonces rsync probablemente no sea la herramienta para esto, ya que rsync en realidad utilizará mucho más ancho de banda de la red mientras verifica los archivos. Además, rsync cambia al --whole-file
modo cuando se realizan transferencias locales, ya que no tiene sentido verificar primero todo el archivo de origen y destino, y luego copiar el origen al destino.
En general recomendaría el uso de -a
si es posible. Es posible que deba combinarlo --numeric-ids
si tiene diferentes usuarios en origen y destino; Si tiene los mismos usuarios pero las ID pueden ser diferentes, NO use --numeric-ids
, rsync asignará las ID según el nombre.