Czy istnieje sposób na kontynuację zepsutego procesu polecenia scp (bezpiecznego kopiowania) w systemie Linux? [Zamknięte]

241

Kopiuję plik 7,5 GB na zdalny serwer za pomocą polecenia scp . W pewnym momencie przesyłanie pliku zrywa się i muszę zacząć wszystko od nowa.

Czy tymczasowa ilość przesyłanego pliku jest całkowicie utracona? Czy mogę jakoś ponownie uruchomić transfer z miejsca, w którym został zatrzymany przy poprzedniej próbie? Jeśli nie, to czy jest do tego jakieś standardowe polecenie przesyłania plików w wierszu poleceń systemu Unix?

Matko
źródło
1
Więcej odpowiedzi na to pytanie , w tym. rozwiązania bez rsync.
tanius

Odpowiedzi:

400

Jeśli chcesz wznowić transfer scp z lokalnego na zdalny , spróbuj z rsync:

rsync --partial --progress --rsh=ssh local_file user@host:remote_file

Krótka wersja, jak wskazał @ aurelijus-rozenas :

rsync -P -e ssh local_file user@host:remote_file

Ogólnie rzecz biorąc, kolejność argumentów dla rsync to

rsync [options] SRC DEST
Tom McClure
źródło
34
Dla portu innego niż domyślny 22 użyjrsync -P -e "ssh -p 222" SRC DEST
asofyan
4
A jeśli rsync -ejest przerwany, znalazłem zmianę nazwy. <nazwa_pliku>. <6funnychars> na <nazwa_pliku> w miejscu docelowym przed wznowieniem rsync -ebyło potrzebne.
gaoithe
5
rsync działa tylko wtedy, gdy jest dostępny po drugiej stronie.
dothebart
1
Czy rsync naprawdę wznawia przesyłanie plików rozpoczęte w scp? Czy faktycznie potrzebne są dwie komendy rsync, jedna komenda rsync, a nie scp, aby rozpocząć kopiowanie, a następnie rozłączenie się, a następnie druga komenda rsync, aby wznowić kopiowanie?
Geoffrey Anderson
4
Nie ma znaczenia, w jaki sposób uzyskano częściowe pobranie. Możesz zacząć od scp, a następnie zakończyć przez rsync.
Tom McClure,
17

To wszystko czego potrzebujesz.

 rsync -e ssh file host:/directory/.
DigitalRoss
źródło