Jak przenieść katalog z jednego serwera na inny?

10

Mam dostęp SSH do obu serwerów, jeden z nich jest pusty. Jak mogę przenieść katalog witryny ze starego serwera na nowy serwer za pośrednictwem połączenia SSH?

PS: Na obu serwerach jest uniksowy

ajile
źródło

Odpowiedzi:

15

Moim ulubionym jest rsync. Jest wystarczająco inteligentny, aby kopiować tylko to, co należy skopiować (tj. Zmienić lub nowe).

rsync -avz /source/path user@desthost:/destination/path/

Zwróć uwagę na ostatnią /na końcu, aby poprosić rsync o skopiowanie wewnątrz tej ścieżki (nie nad nią).
rsyncdba o zarządzanie połączeniem ssh za Ciebie. W avz(typowo) Opcje zapytać rsynckorzystać z archiwum tryb (TAR), aby skopiować rekurencyjnie i zachować jak najwięcej wartości daty i użytkowników. vOpcja jest gadatliwy , aby pokazać, co się obecnie dzieje. zOpcja zip (kompres) przeniesienie na miejmy nadzieję zaoszczędzić czas i przepustowości.

rsync jest bardzo wydajny i jest używany przez większość profesjonalistów, jednak możesz go najpierw przetestować przy użyciu nieocenionych danych, aby upewnić się, że ścieżka i opcje odpowiadają wymaganiom.

Jeśli potrzebujesz użyć rsync przez SSH na niestandardowym porcie, takim jak 2222, możesz użyć następującego polecenia ( zobacz ten artykuł ):

rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/
Pierścień Ø
źródło
Myślę, że rsync jest lepszym rozwiązaniem niż ssh z tego powodu, który podał ring0, tzn. Kopiuje tylko to, co trzeba skopiować. Więc jeśli musisz to zrobić więcej niż raz, rsync da ci przewagę nad prostym scp.
Jason Tan
1
rsync jest zdecydowanie narzędziem. Ale o ukośniku końcowym: jest to ważne dla źródła, a nie dla miejsca docelowego: rsync -a / src / / dest kopiuje wszystko pod src w dest, rsync -a / src / dest kopiuje src i wszystko pod nim do dest / src / .
Oscar