Host źródłowy nie ma dostępu do Internetu, ale może SSH do hosta, który ma; Jak mogę synchronizować rsync z trzecim hostem internetowym?

0

Jest to polecenie, które użyłem do uruchomienia z mojego komputera SOURCE

rsync -Rrlt --progress --delay-updates ./my_folder root@machine-on-same-network:/home/me/.

Teraz muszę skopiować ten folder do komputera TARGET, który jest w Internecie.

Moja maszyna SOURCE nie ma dostępu do Internetu, jednak ta maszyna SOURCE może połączyć się za pośrednictwem SSH z maszyną, która ma dostęp do Internetu.

Czy istnieje sposób na osiągnięcie tego?

zabumba
źródło
1
Czy istnieje jakiś powód, dla którego nie można zsynchronizować folderu na maszynie pośredniej, a stamtąd rsync na maszynie docelowej?
Yozomiri,
tak, jest to naprawdę dobry powód, stąd pytanie
zabumba

Odpowiedzi:

2

Tak, można to zrobić. Witryna rsync wyraźnie wymienia pięć różnych metod, aby to zrobić. Stanowią one u góry strony:

Jeśli masz konfigurację, w której nie ma bezpośredniego połączenia dwóch systemów dla transferu rsync, istnieje kilka sposobów, aby zapora działała jako pośrednik w transferze.

Metoda druga jest dla mnie szczególnie prosta: zmień plik ~ / .ssh / config na komputerze źródłowym, aby zawierał następujące wiersze:

 Host target
   ProxyCommand nohup ssh middle nc -w1 %h %p
   User target_user

Tutaj celem jest komputer docelowy, w którym użytkownik jest celem_użytkownikiem , a środkiem jest komputer działający jako g-between. nc jest oczywiście netcat , nohup tłumi irytujące ostrzeżenie, -w1 zamyka działającą instancję netcat, *% p% używa domyślnego portu.

Po wprowadzeniu tego polecenia polecenie wykonania kopii zapasowej staje się:

 rsync -Rrlt /src/ target:/dest/

Jeśli chcesz z dowolnej przyczyny więcej dyskusji na temat tych metod, dobrym miejscem jest ta strona blogu .

MariusMatutiae
źródło
Tak, rzeczywiście szukałem linku do strony rsync. Twoje zdrowie.
zabumba