Jak wstrzymać / wznowić przesyłanie dużych plików?

23

Niedawno musiałem skopiować około 20 GB danych podzielonych między około 20 plików z mojego laptopa na zewnętrzny dysk twardy. Ponieważ ta operacja trwa dość długo (przy ~ 560 kb / s), zastanawiałem się, czy istnieje jakiś sposób, aby zatrzymać transfer i wznowić go później (w razie potrzeby muszę przerwać transfer). Na marginesie, czy istnieje jakakolwiek różnica w wydajności między kopiowaniem z terminala a kopiowaniem z Nautilus?

Olivier Lalonde
źródło

Odpowiedzi:

21

Poleciłbym użycie rsync .

Przykład:

rsync -a --append source-file destination

Jeśli chcesz zobaczyć postęp, dodaj --progressopcję do polecenia.

alternatywny tekst

Izajasza
źródło
4
Opcja -append wydaje się być linczem do „Resume” ... ale czy istnieje elegancki sposób na „Pause” rsync , inny niż Ctrl + C? ... i może rsync wznowić dokładnie, po czymś dramatycznym ... np. brak zasilania?
Peter.O
Jeśli pochodząc z Google w 2016 roku, jednym ze sposobów byłoby uruchomienie polecenia rsync jako procesu z Pythona lub podobnego i monitorowanie procesu podczas odczytywania danych wyjściowych. Następnie możesz wyzwolić sygnał SIG / przeciwko procesowi. Sądzę, że powinien to zrobić plik sh
Angry 84
3

krótka odpowiedź, nie wymaga instalacji, aby wstrzymać użycie, kill -STOP PID
aby kontynuować wstrzymane użycie procesu, kill -CONT PID
gdzie PID jest identyfikatorem procesu. możesz uzyskać PID, uruchamiając Monitor systemu lub toppolecenie

Edward Torvalds
źródło
2

Mogę odpowiedzieć tylko na część dotyczącą różnicy między terminalem a nautilusem. Sprawdziłem to kilka razy. Wygląda na to, że kopiowanie z terminala jest szybsze niż jakikolwiek graficzny sposób, jak nautilus. Przynajmniej w moim przypadku, gdy skopiuję około 32 GB informacji, zajmie to od terminalu około 3 do 5 minut mniej niż nautilus z 25-minutowej kopii. to około 10% -20% czasu. O sposobie wznowienia kopiowania do urządzenia zewnętrznego, myślę curllub rsyncwznowiłbym nieudaną kopię. Przynajmniej z poleceniem cp. Nie próbowałem tego sam (spróbuję jutro), ale ta dwójka może zadziałać.

Do zwijania musisz aptitude install curllub apt-get instal curlponieważ domyślnie nie jest dostarczany z Ubuntu.

Użyj curl --helplub, rsync --helpaby dowiedzieć się więcej. Jutro pokażę, jak kopiować za pomocą obu, jeśli nie możesz znaleźć drogi.

Luis Alvarado
źródło