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?

Abdul Shajin
fonte
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/
binW
fonte
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' [email protected]:/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

PJ Brunet
fonte
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...

Oli
fonte
4

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

Milan Kerslager
fonte
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