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?


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/

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' root@google.com:/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


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...


4

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.