Pasek postępu dla polecenia scp

92

Czy istnieje sposób wyświetlenia paska postępu podczas kopiowania z serwera na lokalny (lub odwrotnie) przy użyciu scp?

Abdul Shajin
źródło
Teraz dostaję procent, ale potrzebuję paska postępu.
Abdul Shajin,
istnieje skrypt, ale nie mam pojęcia, jak to zrobić
Uri Herrera,
1
Być może będziesz mógł zmienić ten skrypt dla paska postępu dla „cp”: chris-lamb.co.uk/2008/01/24/…
Rinzwind
scp -r nie pokazuje paska postępu, ale podaje procent każdego pliku
spyderman4g63

Odpowiedzi:

92

Nie sądzę, że da się to zrobić scp. Ostatnim razem potrzebowałem czegoś takiego, tj. Pokazanego postępu, rsynczamiast tego użyłem . Pokazuje postęp w sposób podobny do paska. Sprawdź, czy to działa dla Ciebie.

Musisz użyć --progressopcji rsync. Możesz użyć następującego polecenia:

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/
binW
źródło
1
Zamierzałem opublikować coś podobnego, ale kiedy go przetestowałem, właśnie dostałem 2741851 0% 700.39kB/s 0:17:21i nie ma graficznego paska postępu (czego, jak sądzę, chce OP).
Oli
1
@Oli: Myślę, że to dlatego, że kopiujesz bardzo mały plik. Kopiowanie kończy się, zanim rsync pokaże postęp. Jeśli skopiujesz większy plik, powinieneś dostać pasek postępu.
binW
1
Dla każdego, kto szukał cp z paskiem postępu, rsync działa świetnie lokalnie, więc to również odpowiada na to pytanie! (Po prostu odłóż -e ssh user@remote-system:na lokalną kopię i man rsyncobjaśnij wiele, wiele opcji)
mędrzec
1
Jeśli chcesz połączyć się z innym portem SSH niż domyślny, możesz użyć czegoś takiegorsync -avz --progress -e 'ssh -p 1223' [email protected]:/foobar.txt ./my-local-copy.txt
cholera,
4
po co korzystać, rsync póki trzeba tylko dodać -vdoscp
Samir Sabri
64

-vPrzełącznik działa prawidłowo.

Przykład:

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

PJ Brunet
źródło
6
To poprawna odpowiedź.
int_32
To powinna być poprawna odpowiedź! po co zawracać sobie głowę instalowaniem rsync
Samir Sabri
3
Wydaje się, że nie działa podczas używania -3.
fuero
1
@fuero man scp: „ -3Kopie między dwoma hostami zdalnymi są przesyłane przez hosta lokalnego. Bez tej opcji dane są kopiowane bezpośrednio między dwoma hostami zdalnymi. Pamiętaj, że ta opcja wyłącza miernik postępu.
Facet z kapeluszem
4

Nie wiem, jak to zrobić w wierszu polecenia. Jestem pewien, że jest to możliwe, ale istnieje graficzna metoda wykonania tego.

Nautilus (domyślna przeglądarka plików w Ubuntu) może montować serwery ssh / sftp. Potem działają jak lokalny system plików i możesz kopiować pliki tak, jak zwykle. I dostajesz zwykły pasek postępu, który zrobiłbyś z normalną kopią.

Poszukaj w FilemenuConnect to server...

Oli
źródło
4

Począwszy od 2018 r. Postęp i ETA są domyślnie wyświetlane i mogą zostać wyłączone przez -q

Milan Kerslager
źródło
nie na macos, lol!
Drachenfels
Czy przez to masz na myśli ogólny postęp czy na podstawie pliku? Widzę to tylko dla poszczególnych plików w moim świeżo zainstalowanym Debianie 9.
mazunki