O uso pode usar Hosts de salto do SSH para estabelecer conexão de A a D: link
Eu tenho 4 máquinas linux com nome A, B, C, D e quero rsync algum conteúdo da máquina A máquina D , mas A não está diretamente conectado a D e mas A está conectado a B e B está conectado a C e C está conectado para D .
Então, eu quero executar um script em A que rsync algum conteúdo de A para B, em seguida, B para C e, em seguida, C para D.
O uso pode usar Hosts de salto do SSH para estabelecer conexão de A a D: link
A solução é um ProxyCommand de aparência assustadora que você deve adicionar ao seu arquivo ~ / .ssh / config
Eu não consegui fazer com que parecesse bom nesta mensagem, então, por favor, obtenha a partir daí link
Depois de adicionar essas linhas ao (final de) seu arquivo youruserhomedir / .ssh / config na máquina A você pode usar a notação A + B + C para indicar a rota que sua conexão deve seguir:
rsync /some/file B+C+D:/remote/path/on_Dhost/
Você precisará executar o rsync no modo daemon nas máquinas B e C. No modo daemon, você pode especificar um comando para executar antes de o módulo ser executado.
Modifique a máquina B:
user@B:/etc/rsyncd.conf
pre-xfer exec = rsync [options] C
E, em seguida, daisy chain de C para D:
user@C:/etc/rsyncd.conf
pre-xfer exec = rsync [options] D
Execute o rsync da máquina A para B ... executa o rsync para a máquina B para a máquina C ... e depois para o D.
A propósito, a opção "post-xfer exec" também está disponível.
Tags ssh rsync bashrc scripting shell-script