Barra di avanzamento per il comando scp


92

Esiste un modo per visualizzare una barra di avanzamento durante la copia dal server al locale (o viceversa) utilizzando scp?


Ora sto ottenendo la percentuale, ma ho bisogno di una barra di avanzamento.
Abdul Shajin,

c'è una sceneggiatura in giro ma non ho idea di come farlo funzionare
Uri Herrera,

1
Potresti essere in grado di modificare questo script per una barra di avanzamento per 'cp'`: chris-lamb.co.uk/2008/01/24/…
Rinzwind

scp -r non mostra la barra di avanzamento ma fornisce una percentuale di ogni file
spyderman4g63

Risposte:


93

Non penso che questo possa essere fatto scp. L'ultima volta che ho avuto bisogno di qualcosa del genere, ad esempio i progressi mostrati, ho usato rsyncinvece. Mostra i progressi in modo simile a una barra. Guarda se va bene per te.

Dovrai usare l' --progressopzione di rsync. Puoi usare il seguente comando:

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

1
Avevo intenzione di pubblicare qualcosa di simile ma quando l'ho provato, ho appena ricevuto 2741851 0% 700.39kB/s 0:17:21e nessuna barra di avanzamento grafica (ciò che penso che l'OP voglia).
Oli

1
@Oli: penso che sia perché stai copiando un file molto piccolo. La copia termina prima che rsync possa mostrare progressi. Se copi un file più grande, dovresti ottenere una barra di avanzamento.
binW,

1
Per chiunque stia cercando cp con barra di avanzamento, rsync funziona alla grande a livello locale, quindi questo risponde anche a questa domanda! (Basta lasciare -e ssh user@remote-system:per una copia locale e man rsyncspiegare le molte, molte opzioni)
saggio

1
Se vuoi connetterti a una porta SSH diversa da quella predefinita, puoi usare qualcosa del generersync -avz --progress -e 'ssh -p 1223' root@google.com:/foobar.txt ./my-local-copy.txt
dannatamente il

4
perché usarlo rsync mentre devi solo aggiungere -vascp
Samir Sabri il

64

L' -vinterruttore funziona bene.

Esempio:

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


6
Questa è la risposta corretta.
int_32

Questa dovrebbe essere la risposta corretta! perché preoccuparsi e installare rsync
Samir Sabri,

3
Non sembra funzionare durante l'utilizzo -3.
fuero,

1
@fuero man scp: " -3Le copie tra due host remoti vengono trasferite attraverso l'host locale. Senza questa opzione i dati vengono copiati direttamente tra i due host remoti. Nota che questa opzione disabilita l'indicatore di avanzamento. "
The Guy with The Hat

4

Non so come farlo in una riga di comando. Sono sicuro che è possibile, ma esiste un metodo grafico per farlo.

Nautilus (il browser di file predefinito in Ubuntu) può montare server ssh / sftp. Dopo ciò si comportano come un filesystem locale e puoi copiare i file come faresti normalmente. E ottieni la solita barra di avanzamento che avresti con una copia normale.

Cerca nel FilemenuConnect to server...


4

A partire dal 2018, i progressi e l'ETA sono mostrati per impostazione predefinita e potrebbero essere disabilitati da -q


non su macos, lol!
Drachenfels,

Con questo, intendi i progressi complessivi o in base al file? Lo vedo solo per file nel mio Debian 9. appena installato
mazunki
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.