Como rsync arquivos entre dois remotos com uma porta explícita e nomes de usuários diferentes?

2

Eu quero rsync arquivos entre dois servidores remotos. Eu tentei seguir a próxima solução do @roaima: link , mas eu preciso de uma solução mais delicada, por duas razões :

  1. Um dos servidores remotos tem uma porta não padrão para ssh, portanto, preciso especificar a porta com a opção -p.
  2. Eu posso ssh para ambos os servidores, mas eu tive que usar diferentes nomes de usuários, então tem que ser explicitamente especificado.

Além disso, na solução citada, não está claro qual é o caminho no host de origem e qual deles está no destino, pois ambos aparecem como / var / www

Eu tentei uma variação diferente do próximo comando, mas sem sucesso:

ssh -R localhost:50000:username1@dest_host:22 username2@source_host 'rsync -e "ssh -p 50000" -avzt --progress --partial /path/on/source/ localhost:/path/on/destination/'
    
por user890739 19.05.2016 / 07:15

2 respostas

1

A solução elegante que encontrei está usando scp .

scp -3 -Cp [email protected]:/path/file*.txt [email protected]:/path/

Funciona perfeitamente. Observe o uso de dois nomes de usuários diferentes para dois hosts. Você também pode usar curingas no nome do arquivo, como * .

    
por 10.11.2016 / 22:30
1

O que você está fazendo é pelo menos "complicado". Até onde entendi, você se conecta a um servidor e diz para sincronizar com outro servidor.

Para facilidade de uso, você pode especificar a porta e o usuário para usar na configuração ssh local de um determinado host. por exemplo, se você adicionar as seguintes linhas ao arquivo ~ / .ssh / config (/home/username2/.ssh/config) no source_host:

machine dest_host
 user username1
 port 50000

Você pode rsync arquivos para o dest_host de source_host com:

ssh username2@source_host 'rsync -e ssh /source/path/on/source_host dest_host:path_below_username1_home

Assumindo, o sshd do dest_host escuta na porta 50000. Você também pode querer olhar para a opção "-r" / "-u" do rsync.

    
por 19.05.2016 / 08:44