Mam jeden starszy serwer Ubuntu i jeden nowszy serwer Debian i migruję dane ze starego na nowy. Chcę używać rsync do przesyłania danych, aby końcowa migracja była łatwiejsza i szybsza niż równoważny proces tar / scp / untar.
Na przykład chcę zsynchronizować foldery domowe pojedynczo z nowym serwerem. Wymaga to dostępu do konta root na obu końcach, ponieważ nie wszystkie pliki po stronie źródłowej są czytelne dla całego świata, a miejsce docelowe musi być zapisane z prawidłowymi uprawnieniami do / home. Nie mogę wymyślić, jak dać dostęp do roota rsync po obu stronach.
Widziałem kilka powiązanych pytań, ale żadne z nich nie pasuje do tego, co próbuję zrobić.
Mam sudo skonfigurowane i działające na obu serwerach.
Jeśli Twoje dane nie są szczególnie wrażliwe, możesz użyć
tar
isocat
. Z mojego doświadczenia wynika, że często jest to szybsze niżrsync
w przypadku ssh.Potrzebujesz
socat
lubnetcat
po obu stronach.Na hoście docelowym przejdź do katalogu, w którym chcesz umieścić swoje dane, po tym uruchomieniu:
socat TCP-LISTEN:4444 - | tar xzf -
Jeśli host docelowy nasłuchuje, uruchom go w źródle, takim jak:
tar czf - /home/fred /home/ | socat - TCP:ip-of-remote-server:4444
Do tej konfiguracji potrzebujesz niezawodnego połączenia między 2 serwerami.
źródło
Ok, zebrałem wszystkie wskazówki, aby uzyskać coś, co działa dla mnie.
Nazwijmy serwery „src” i „dst”.
Skonfiguruj parę kluczy dla roota na serwerze docelowym i skopiuj klucz publiczny na serwer źródłowy:
Dodaj klucz publiczny do autoryzowanych kluczy root na serwerze źródłowym
Z powrotem na serwerze docelowym przeciągnij dane za pomocą rsync:
źródło