Como usar o rsync para copiar arquivos entre 2 servidores remotos baseados no servidor localhost?

Como usar o rsync para copiar arquivos entre 2 servidores remotos baseados no servidor localhost?

Tenho um caso em que preciso mover dados de um servidor antigo:host1para um novo servidor:host2. O problema é que o host1 não consegue ver o host2, mas posso usar outro servidor (host local) para SSH para host1 e host2.

Imagine que deveria funcionar assim:host1 -> localhost -> host2

Como posso usar o rsync para copiar arquivos entre host1 e host2? Eu tentei este comando no servidor localhost, mas ele dizA origem e o destino não podem ser ambos remotos.

 rsync -avz host1:/workspace host2:/rasv1/old_code-de

Responder1

Acabei com a solução dehttps://unix.stackexchange.com/users/312074/eblock

com

scp -3 host1 host2

Responder2

Você pode usar o tunelamento para redirecionar o rsync usando ssh.

Comece logado como user@host1 e crie o túnel para host2 através do seu "localhost" (vamos chamá-lo de "your_host" para evitar confusão):

ssh <your_host_user>@<your_host> -L 8080:<host2_ip>:22

Mantenha esse terminal aberto e, em seguida, em outro terminal do tipo host1:

rsync -avzh -e "ssh -p 8080" <source_file> <host2_user>@127.0.0.1:/<target_folder>

Claro que você pode usar qualquer outra porta ao invés da 8080. Quanto a usar outro método que não envolva ssh, acho que é possível mas não testei.

Responder3

Pelo que sei, o rsync não suporta cópia de servidor remoto para servidor remoto.

Se você precisar apenas de uma cópia simples do arquivo, poderá usar a opção scpwith -3conforme apontado por @eblock

 

Se você precisar do rsync, poderá montar os dois servidores na pasta local comsshfs

sshfs user@server1:/path/on/server1 /local/path1
sshfs user@server2:/path/on/server2 /local/path2

E copie os arquivos entre pastas locais:

rsync -av /local/path1 /local/path2

Para desmontar:

fusermount -u /local/path1
fusermount -u /local/path2

Embora eu não tenha certeza sobre a velocidade/desempenho do sshfs.

informação relacionada