Como rsync conteúdo de outra máquina através de várias máquinas?

1

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.

    
por MikePappa 21.10.2017 / 18:37

3 respostas

0

O uso pode usar Hosts de salto do SSH para estabelecer conexão de A a D: link

    
por 21.10.2017 / 19:07
0

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/
    
por 21.10.2017 / 19:11
0

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.

    
por 23.10.2017 / 03:47