Próbuję przesłać duże pliki (około 10 GB) o niskiej prędkości przesyłania (200 kb / s) na często rozłączanym połączeniu SSH (z powodu złych warunków sieciowych).
Próbuję użyć scp
, ale jeśli istnieje najlepszy sposób na SSH, nie mam nic przeciwko.
Jak najlepiej to zrobić?
Próbowałem podzielić go na kilka części split
, ale nie jest to naprawdę wydajne, ponieważ wymaga dużo pracy ręcznej przed i po przeniesieniu.
rsync
jest lepiej. Można go ponownie uruchomić - co oznacza, że możesz kontynuować od miejsca, w którym przerwałeś, jeśli połączenie zostanie rozłączone. Prawdopodobnie będziesz chciał użyć--partial
flagi. I domyślnie działa nad ssh. Możesz łączyć się z agresywnym programem kompresji, takim jak 7z, ale będziesz potrzebować dużo pamięci i to zajmie trochę czasu.rsync -abvz --partial
. Czy możesz pokazać przykładową sesję?scp
. Można wznowić przesyłanie za pomocąrsync --partial
. Nie można wznowić przesyłania za pomocąsftp
. Na innym kierunku, tj wznawianie pobieranie plików, można użyćrsync --partial
,sftp reget
lubsftp get -a
.Odpowiedzi:
Użyj rsync z opcją --partial
Opcja --partial zachowa częściowo przesłane pliki. Po wznowieniu transferu rsync po zerwaniu połączenia ssh częściowo przesłane pliki zaczną być wznawiane od miejsca, w którym połączenie ssh zostało utracone, a także pomyślnie przesłane pliki nie zostaną ponownie przesłane.
Zastanów się również nad przekazaniem opcji -z , jeśli uważasz, że przesyłane pliki można znacznie skompresować; na przykład pliki dziennika zawierające powtarzający się tekst.
źródło