Pamiętaj, że jeśli masz wolne łącze lub serwer jest mocno obciążony, narzędzie używane do kopiowania nie będzie wąskim gardłem, a jakikolwiek sposób kopiowania i tak będzie powolny.
Powinno to zapewnić podstawowe użycie do kopiowania między komputerem lokalnym a serwerem zdalnym: http://oreilly.com/pub/h/38
Aby skopiować z komputera lokalnego na zdalny serwer (oczywiście musisz zastąpić ścieżki, nazwę użytkownika i adres hosta):
Zwróć uwagę, że @Piskvor nie uwzględnił -zopcji kopiowania lokalnego, ponieważ powoduje to niepotrzebny narzut. IMHO, powinieneś używać tylko -zpodczas używania rsync przez wolne łącze sieciowe. Jeśli kopiujesz duże ilości danych ponad 100Base-T, możesz być w porządku bez -z. Dzięki szybkiemu połączeniu sieciowemu kompresja może ustalić procesor i zagłodzić inne procesy.
tomlogic 16.01.12
@tomlogic: Dobra uwaga - innymi słowy, nie używaj -zdo kopiowania lub kopiowania w sieci LAN na jednym komputerze; testuj z lub bez -zkopiowania przez Internet (jedno lub drugie może być szybsze, w zależności od wielu rzeczy).
Piskvor opuścił budynek
1
Pominąłbym również kompresję, jeśli wiesz, że Twoje pliki są już skompresowane, na przykład synchronizację drzewa folderów pełnego plików JPEG, ponieważ nie ma nic do zyskania.
przerwa na linii
Uwaga: -e sshjest teraz domyślny dla hostów zdalnych, więc nie jest konieczne jawne przekazywanie opcji.
W przypadku pojedynczych transakcji scp jest przydatny. Jeśli jest dużo plików, dobrym pomysłem jest rsync. Jeśli połączenie zostanie przerwane, rsync może rozpocząć od miejsca, w którym zostało przerwane.
Wiedziałem, że rsync ma kompresję ( -z), i właśnie dowiedziałem się, że scp również ( -C).
Cóż, IIRC oba używają algorytmów kompresji SSH, przynajmniej dla operacji sieciowych.
Piskvor opuścił budynek
0
W twoim ustawieniu rsync prawdopodobnie wystarcza ... ale na przykład, jeśli jest wiele małych plików, może być szybsze tarowanie plików najpierw niż przesyłanie następnie przez rsync. Dzieje się tak, ponieważ przenoszenie właściciela, znaczników czasu i uprawnień jest czasem cięższe niż sam plik, jeśli plik jest mały. Tar połączy wszystkie te informacje w jednym pliku, a rsync skopiuje większe bloki.
Lub jeszcze lepiej, jeśli nie są potrzebne żadne zabezpieczenia, użyj tar i nc:
Na miejscu przygotuj demona odbierającego, rozpakuj i rozpakuj:
nc -l -p 12345 | pigz -d | tar xvf -
W źródle, tar wszystko, kompresję równoległą i wysłać do miejsca docelowego:
-z
opcji kopiowania lokalnego, ponieważ powoduje to niepotrzebny narzut. IMHO, powinieneś używać tylko-z
podczas używania rsync przez wolne łącze sieciowe. Jeśli kopiujesz duże ilości danych ponad 100Base-T, możesz być w porządku bez-z
. Dzięki szybkiemu połączeniu sieciowemu kompresja może ustalić procesor i zagłodzić inne procesy.-z
do kopiowania lub kopiowania w sieci LAN na jednym komputerze; testuj z lub bez-z
kopiowania przez Internet (jedno lub drugie może być szybsze, w zależności od wielu rzeczy).-e ssh
jest teraz domyślny dla hostów zdalnych, więc nie jest konieczne jawne przekazywanie opcji.Inne słowo:
scp
W przypadku pojedynczych transakcji scp jest przydatny. Jeśli jest dużo plików, dobrym pomysłem jest rsync. Jeśli połączenie zostanie przerwane, rsync może rozpocząć od miejsca, w którym zostało przerwane.
Wiedziałem, że rsync ma kompresję (
-z
), i właśnie dowiedziałem się, że scp również (-C
).źródło
W twoim ustawieniu rsync prawdopodobnie wystarcza ... ale na przykład, jeśli jest wiele małych plików, może być szybsze tarowanie plików najpierw niż przesyłanie następnie przez rsync. Dzieje się tak, ponieważ przenoszenie właściciela, znaczników czasu i uprawnień jest czasem cięższe niż sam plik, jeśli plik jest mały. Tar połączy wszystkie te informacje w jednym pliku, a rsync skopiuje większe bloki.
Lub jeszcze lepiej, jeśli nie są potrzebne żadne zabezpieczenia, użyj tar i nc:
Na miejscu przygotuj demona odbierającego, rozpakuj i rozpakuj:
W źródle, tar wszystko, kompresję równoległą i wysłać do miejsca docelowego:
źródło