GNU/Linux >> Tutoriales Linux >  >> Linux

Reanudar la transferencia de un solo archivo por rsync

Para reanudar una copia interrumpida, debe usar rsync --append . De la explicación de la página del manual de --append :

Esto hace que rsync actualice un archivo agregando datos al final del archivo, lo quepresume que los datos que ya existen en el lado receptor son idénticos al inicio del archivo en el lado emisor. [...] implica --inplace , [...]

Opción --inplace hace rsync (sobre) escribir directamente el contenido del archivo de destino; sin --inplace , rsync haría:

  1. crear un nuevo archivo con un nombre temporal,
  2. copie el contenido actualizado en él,
  3. intercámbielo con el archivo de destino y, finalmente,
  4. elimine la copia anterior del archivo de destino.

El modo de funcionamiento normal evita principalmente conflictos con aplicaciones que pueden tener el archivo de destino abierto y algunos otros percances que se enumeran debidamente en el rsync página de manual.

Tenga en cuenta que, si una operación de copia/actualización falla en los pasos 1.-3. arriba, rsync eliminará el archivo de destino temporal; el --partial opción deshabilita este comportamiento y rsync dejará los archivos temporales parcialmente transferidos en el sistema de archivos de destino. Por lo tanto, reanudar una operación de copia de un solo archivo no ganará mucho a menos que llame al primer rsync con --partial o --partial-dir (mismo efecto que --partial , además instruye rsync para crear todos los archivos temporales en un directorio específico).


Tenga en cuenta que --append implica --inplace , que en sí implica --partial .

  • Simplemente usando --partial deberías causar rsync para dejar transferencias parciales y reanudarlas en intentos posteriores.

  • Usando --append deberías causar rsync para dejar archivos parciales y reanudarlos la próxima vez. Después de la transferencia rsync debe verificar la suma de verificación de los datos transmitidos solamente.

  • --append-verify incluye todo el archivo en la verificación de la suma de comprobación, incluida cualquier parte transferida en una transferencia anterior.

  • Con --append o --append-verify una verificación de suma de verificación fallida debería hacer que el archivo se retransmita por completo (usando --inplace )

Debería poder reanudar un mv o cp operación con rsync pero es posible que desee utilizar el --append-verify opción para su tranquilidad.

Tenga en cuenta que usar --append causas rsync para copiar solo aquellos archivos que tienen un tamaño en el receptor más corto que el tamaño del remitente (independientemente de las marcas de tiempo), o están ausentes en el receptor. Por documentación sobre esta opción:

Si es necesario transferir un archivo y su tamaño en el receptor es igual o mayor que el tamaño en el remitente, el archivo se omite.

Más información en la página man


David Schwartz tiene razón, --partial (o mejor, -P ) hace lo que quieres. Verifiqué esto en un archivo 37G que se detuvo ~8g, a través de una red. rsync escaneó rápidamente las primeras partes del parcial (mostrando el progreso gracias a -P ), y luego reanudó la transferencia hasta el final del archivo parcial.


Linux
  1. Protocolos de transferencia de archivos:FTP vs SFTP

  2. ¿Qué es el Protocolo de transferencia de archivos (FTP)?

  3. Cómo usar Netcat para transferir archivos en Linux

  4. Abrir un archivo .tar.gz con un solo comando

  5. RSync:¿Cómo sincronizo en ambas direcciones?

Cómo transferir archivos con Rsync a través de SSH

Ejemplos de Rsync para transferir archivos en Linux

Transferir archivos usando WinSCP

scp un solo archivo a múltiples ubicaciones

¿Hay alguna manera de reanudar un scp interrumpido de un archivo?

Montaje de un sistema de archivos a través de Internet