O host de origem não tem acesso à Internet, mas o SSH pode hospedar o que possui; Como posso rsync para um terceiro host da Internet?

0

Este é o comando que eu usei para executar a partir da minha máquina SOURCE

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

Agora preciso copiar essa mesma pasta para uma máquina TARGET que esteja na Internet.

Minha máquina SOURCE não tem acesso à Internet, no entanto, essa máquina SOURCE pode se conectar via SSH a uma máquina que tenha acesso à Internet.

Existe uma maneira de conseguir isso?

zabumba
fonte
1
Existe alguma razão pela qual você não pode rsync a pasta para a máquina intermediária e de lá rsync para a máquina de destino?
Yozomiri
sim, há realmente uma boa razão para isso, daí a questão
zabumba

Respostas:

2

Sim, é possível fazer isso. O site da Web do rsync lista explicitamente cinco métodos diferentes para fazer isso. Eles estão no topo da página:

Se você tem uma configuração onde não há como conectar diretamente dois sistemas para uma transferência de rsync, existem várias maneiras de fazer com que um sistema de firewall atue como um intermediário na transferência.

Eu acho o método dois especialmente simples: altere seu arquivo ~ / .ssh / config em sua máquina fonte para incluir estas linhas:

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

Aqui target é o pc de destino, onde você é target_user , e o middle é o pc que atua como um g-between. nc é, obviamente , netcat , nohup suprime um aviso irritante, -w1 desliga a instância em execução do netcat, *% p% usa a porta padrão.

Com isso, o comando para executar o backup se torna:

 rsync -Rrlt /src/ target:/dest/

Se você quiser mais discussão sobre esses métodos por qualquer motivo, um bom lugar é esta página do blog .

MariusMatutiae
fonte
Sim, o link para a página do rsync era tudo o que eu estava procurando. Felicidades.
zabumba