# rm-rf.es

Reanudar transferencias fallidas de ficheros con rsync sobre ssh

Para la subida o descarga de ficheros de gran tamaño es recomendable utilizar un método que permita reanudar la transferencia de ficheros en caso de pérdida de conectividad o cualquier otro fallo. Usando rsync sobre ssh, además de proporcionarnos un método seguro para la transferencia de datos podemos indicarle que en caso de fallo se permita la reanudación  donde se había quedado.

Los siguientes parámetros nos ayudarán con esta tarea:

     --partial               keep partially transferred files
     --partial-dir=DIR       put a partially transferred file into DIR
     -P                      same as --partial --progress
     --progress              show progress during transfer
     --append                append data onto shorter files
     --append-verify         like --append, but with old data in file checksum

Básicamente especificando -P ó –partial y –progress activamos el soporte para la reanudación de transferencia de ficheros en el punto en el que nos hemos quedado. Por otro lado –append nos permite lo mismo pero para ficheros individuales. Después con -e especificaremos que utilizaremos ssh en lugar de rsh:

 -e, --rsh=COMMAND           specify the remote shell to use

Podríamos entonces construir el comando rsync con el siguiente ejemplo:

$ rsync -avz --append --progress --partial -e ssh test.tgz foo@192.168.1.129:/home/foo
foo@192.168.1.129's password: 
sending incremental file list
test.tgz
    97648640   6%    3.57MB/s    0:06:05  ^C
rsync error: unexplained error (code 130) at rsync.c(549) [sender=3.0.9]

Como podéis ver, he parado con un Ctrl + c la subida, en el destino el fichero ha quedado prácticamente con el tamaño especificado:

-rw-------.  1 root root 97255424 Jan  4 18:08 test.tgz

Si ahora reanudamos la subida, veremos como continúa donde se había quedado en lugar de empezar desde el 0%:

$ rsync -avz --append --progress --partial -e ssh test.tgz foo@192.168.1.129:/home/foo
foo@192.168.1.129's password: 
sending incremental file list
test.tgz
   134938624   9%    3.28MB/s    0:06:26
Salir de la versión móvil