Barra de progresso para o comando scp


92

Existe alguma maneira de exibir uma barra de progresso enquanto copia do servidor para o local (ou vice-versa) usando scp?


Agora estou recebendo a porcentagem, mas preciso de uma barra de progresso.
Abdul Shajin

há um script ao redor, mas eu não tenho nenhuma idéia de como fazê-lo funcionar embora
Uri Herrera

1
Você pode alterar esse script para obter uma barra de progresso para 'cp' ': chris-lamb.co.uk/2008/01/24/…
Rinzwind

scp -r não mostra barra de progresso mas dá uma percentagem de cada arquivo
spyderman4g63

Respostas:


92

Eu não acho que isso possa ser feito scp. A última vez que precisei de algo assim, isto é, o progresso mostrado, usei rsync. Ele mostra o progresso de maneira semelhante a um bar. Veja se isso funciona para você.

Você precisará usar a --progressopção de rsync. Você pode usar o seguinte comando:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/

1
Eu ia postar algo semelhante, mas quando o testei, acabei de receber 2741851 0% 700.39kB/s 0:17:21e nenhuma barra de progresso gráfico (o que acho que o OP quer).
Oli

1
@ Oli: Eu acho que é porque você está copiando um arquivo muito pequeno. A cópia termina antes que o rsync possa mostrar o progresso. Se você copiar um arquivo maior, deverá obter uma barra de progresso.
binW

1
Para quem estava procurando cp com barra de progresso, o rsync funciona muito bem localmente, então isso também responde a essa pergunta! (Just deixar de fora o -e ssh user@remote-system:para uma cópia local e man rsyncexplica as muitas, muitas opções)
sage

1
Se você deseja conectar-se a uma porta SSH diferente da padrão, use algo comorsync -avz --progress -e 'ssh -p 1223' root@google.com:/foobar.txt ./my-local-copy.txt
damd 23/08/16

4
por que usar rsync enquanto você só precisa adicionar -vascp
Samir Sabri

64

O -vinterruptor funciona bem.

Exemplo:

5% 9232KB 357,5KB / s 07:48 ETA


6
Essa é a resposta correta.
int_32

Essa deve ser a resposta correta! por que se preocupar e instalar rsync
Samir Sabri

3
Parece não funcionar ao usar -3.
fuero

1
@fuero man scp: " -3Cópias entre dois hosts remotos são transferidas através do host local. Sem essa opção, os dados são copiados diretamente entre os dois hosts remotos. Observe que essa opção desativa o medidor de progresso. "
The Guy with The Hat

4

Não sei como fazer isso em uma linha de comando. Tenho certeza de que é possível, mas existe um método gráfico para fazer isso.

O Nautilus (o navegador de arquivos padrão no Ubuntu) pode montar servidores ssh / sftp. Eles agem como um sistema de arquivos local depois disso e você pode copiar arquivos como faria normalmente. E você obtém a barra de progresso usual que obteria com uma cópia normal.

Procure no Filemenu porConnect to server...


4

A partir de 2018, o progresso e a ETA são mostrados por padrão e podem ser desativados por -q


não no macos, lol!
Drachenfels

Com isso, você quer dizer progresso geral ou por arquivo? Eu o vejo somente por arquivo no meu Debian 9. recém-instalado.
mazunki
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.