Barra de progreso para comando scp

92

¿Hay alguna forma de mostrar una barra de progreso mientras se copia del servidor a local (o viceversa) usando scp?

Abdul Shajin
fuente
Ahora estoy obteniendo el porcentaje, pero necesito una barra de progreso.
Abdul Shajin
hay un guión, pero no tengo idea de cómo hacerlo funcionar
Uri Herrera
1
Es posible que pueda modificar este script para una barra de progreso para 'cp': chris-lamb.co.uk/2008/01/24/…
Rinzwind
scp -r no muestra la barra de progreso pero da un porcentaje de cada archivo
spyderman4g63

Respuestas:

93

No creo que se pueda hacer esto scp. La última vez que necesité algo como esto, es decir, el progreso que se muestra, lo utilicé rsync. Muestra el progreso en forma de barra. Ve si funciona para ti.

Deberá usar la --progressopción de rsync. Puede usar el siguiente comando:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/
binW
fuente
1
Iba a publicar algo similar, pero cuando lo probé, acabo de recibir 2741851 0% 700.39kB/s 0:17:21una barra de progreso gráfica (lo que creo que quiere el OP).
Oli
1
@Oli: Creo que es porque estás copiando un archivo muy pequeño. La copia finaliza antes de que rsync pueda mostrar el progreso. Si copia un archivo más grande, debería obtener una barra de progreso.
binW
1
Para cualquiera que estaba buscando cp con barra de progreso, rsync funciona muy bien localmente, ¡así que esto también responde a esa pregunta! (Simplemente deje el -e ssh user@remote-system:para una copia local y man rsyncexplica las muchas, muchas opciones)
sabio
1
Si desea conectarse a un puerto SSH diferente al predeterminado, puede usar algo comorsync -avz --progress -e 'ssh -p 1223' [email protected]:/foobar.txt ./my-local-copy.txt
maldito
44
por qué usar rsync mientras solo necesitas agregar -vascp
Samir Sabri
64

El -vinterruptor funciona bien.

Ejemplo:

5% 9232KB 357.5KB / s 07:48 ETA

PJ Brunet
fuente
66
Esa es la respuesta correcta.
int_32
¡Esa debería ser la respuesta correcta! por qué molestarse e instalar rsync
Samir Sabri
3
No parece funcionar cuando se usa -3.
fuero
1
@fuero man scp: " -3Las copias entre dos hosts remotos se transfieren a través del host local. Sin esta opción, los datos se copian directamente entre los dos hosts remotos. Tenga en cuenta que esta opción desactiva el medidor de progreso " .
The Guy with The Hat
4

No sé cómo hacer esto en una línea de comando. Estoy seguro de que es posible, pero hay un método gráfico para hacerlo.

Nautilus (el explorador de archivos predeterminado en Ubuntu) puede montar servidores ssh / sftp. Después de eso, actúan como un sistema de archivos local y puede copiar archivos como lo haría normalmente. Y obtienes la barra de progreso habitual que obtendrías con una copia normal.

Mira debajo del Filemenú paraConnect to server...

Oli
fuente
4

A partir de 2018, el progreso y ETA se muestran de forma predeterminada y podrían deshabilitarse -q

Milan Kerslager
fuente
no en macos, jajaja!
Drachenfels
Con esto, ¿te refieres al progreso general o por archivo? Solo lo veo por archivo en mi Debian 9. recién instalado
mazunki