이름이 있는 Linux 머신이 4대 있습니다.ABCD기기의 항목을 동기화하고 싶습니다.ㅏ기계디, 하지만A는 D에 직접 연결되어 있지 않습니다.하지만A가 B에 연결됨그리고B는 C에 연결됩니다그리고C가 D에 연결됨.
그래서 A에서 B로, B에서 C로, C에서 D로 일부 콘텐츠를 동기화하는 스크립트를 A에서 실행하고 싶습니다.
답변1
사용자는 SSH 점프 호스트를 사용하여 A에서 D로 연결을 설정할 수 있습니다.https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two
답변2
해결책은 `~/.ssh/config 파일에 추가해야 하는 무섭게 보이는 ProxyCommand입니다.
이 메시지에서는 보기 좋게 표시할 수 없으므로 거기에서 가져오시기 바랍니다.https://hastebin.com/doqekujalu.tex
머신 A(마지막)의 userhomedir/.ssh/config 파일에 다음 행을 추가한 후 A+B+C 표기법을 사용하여 연결 경로를 나타낼 수 있습니다.
rsync /some/file B+C+D:/remote/path/on_Dhost/
답변3
머신 B와 C에서 데몬 모드로 rsync를 실행해야 합니다. 데몬 모드에서는 모듈을 실행하기 전에 실행할 명령을 지정할 수 있습니다.
기계 B 수정:
user@B:/etc/rsyncd.conf
pre-xfer exec = rsync [options] C
그런 다음 C에서 D로 데이지 체인을 연결합니다.
user@C:/etc/rsyncd.conf
pre-xfer exec = rsync [options] D
머신 A에서 B로 rsync를 실행하고 머신 B에서 머신 C로 rsync를 실행한 다음 D로 rsync를 실행합니다.
그런데 "post-xfer exec" 옵션도 사용할 수 있습니다.