Utilizo el comando scp shell para copiar una carpeta enorme de archivos.
Pero en algún momento tuve que matar el comando en ejecución (con Ctrl + C o matar).
A mi entender, scp copió los archivos secuencialmente, por lo que solo debería haber un archivo parcialmente copiado.
¿Cómo se puede reanudar el mismo comando scp para no sobrescribir los archivos copiados correctamente y para manejar correctamente los archivos parcialmente copiados?
PD: Sé que puedo hacer este tipo de cosas en rsync, pero scp es más rápido para mí por alguna razón y lo uso en su lugar.

ddcon unaskipvariable adecuada y canalizar assh:)Respuestas:
Deberías usar
rsyncmássshLa opción clave es
-P, que es la misma que--partial --progressTambién se pueden utilizar otras opciones, como
-a(para el modo de archivo) y-z(para habilitar la compresión).El manual: https://download.samba.org/pub/rsync/rsync.html
fuente
-r. Fuente: lucasb.eyer.be/snips/rsync-skipping-directory.htmlrsync -P -rsh remoteuser@remotehost:/remote/path /local/pathUna alternativa a rsync:
Uso
sftpcon la opción-r(de forma recursiva copiar directorios enteros) y la opción-adesftp'sgetde control para reanudar las transferencias parciales de los archivos existentes.Requisito previo: su
sftpimplementación ya tiene una opcióngetwith-a.Ejemplo:
Copie el directorio
/foo/bardel servidor remoto a su directorio actual local. El directoriobarse creará en su directorio actual local.fuente
echo "put -a foo/bar" | sftp -r server:/fooDesde OpenSSH 6.3, puede usar el
regetcomando ensftp.Tiene la misma sintaxis que el
get, excepto que inicia una transferencia desde el final de un archivo local existente.fuente
Otra posibilidad es intentar salvar el scp que ya ha iniciado cuando se detiene.
ctrl + z en segundo plano y detenerlo, luego ssh hacia el servidor receptor e inicie sesión, luego salga. ¡Ahora fg el proceso scp y observe cómo se reanuda desde 'estancado'!
fuente
Cuando rsync también se detiene después de un par de segundos cuando inicialmente funciona bien, terminé con la siguiente solución de fuerza bruta:
fuente
Puede hacer uso de las opciones
-rshy-Pdersync.-Pes para descarga parcial e-rshindica que la transferencia ha terminado con el procotol ssh.El comando completo sería:
rsync -P -rsh remoteuser@remotehost:/remote/path /local/pathfuente
Ayer tuve el mismo problema, transfiriendo un volcado de sql enorme a través de scp, tuve suerte con
wget --continue the_urlEsa publicación de blog lo explica bastante bien http://www.cyberciti.biz/tips/wget-resume-broken-download.html
fuente