Jeśli jest to jednorazowy transfer, rsync NIE jest narzędziem do zadania.
Sposób, w jaki bym to zrobił, polegałby na tarowaniu plików (i opcjonalnie kompresji, w zależności od charakterystyki serwerów i połączenia między nimi), a następnie przesyłaniu tego przez SSH na nowy serwer i dekompresji. Można to zrobić za pomocą 1 polecenia. Będziesz musiał go zmieniać w zależności od specyfiki, ale będzie wyglądać mniej więcej tak:
tar -cz /startdir | pv | ssh user@ip "cd /destpath; tar -xf"
Spowoduje to skompresowanie plików do pojedynczego strumienia, więc nie będzie dużo tam iz powrotem dla każdego pliku, co zapewnia maksymalną prędkość. Wykonuje również kompresję, wysyłkę i dekompresję w jednym kroku, dzięki czemu zminimalizuje całkowity czas.
Aby rozbić, jak to działa:
tar kompresuje / dekompresuje pliki do strumienia na standardowym wyjściu (ponieważ nie podano nazwy pliku). -c oznacza tworzenie, a z oznacza kompresję. Możesz pominąć z, jeśli kompresja nie jest pożądana.
Bit pv nie jest potrzebny, ale zapewnia informację zwrotną o tym, że dane są przesyłane oraz o szybkości przesyłania skompresowanych danych. Polecenie ssh oczywiście tworzy połączenie ze stroną zdalną i podaje do niego dane wyjściowe poprzednich poleceń. Następnie przeskakuje do odpowiedniego katalogu i dekompresuje go.