Como sincronizar novamente arquivos entre dois controles remotos com uma porta explícita e nomes de usuário diferentes?

Como sincronizar novamente arquivos entre dois controles remotos com uma porta explícita e nomes de usuário diferentes?

Quero sincronizar novamente os arquivos entre dois servidores remotos. Tentei seguir a próxima solução do @roaima:https://unix.stackexchange.com/a/183516/137526, mas preciso de uma solução mais delicada, por dois motivos:

  1. Um dos servidores remotos possui uma porta não padrão para ssh, então preciso especificar a porta com a opção -p.
  2. Posso fazer ssh para ambos os servidores, mas tive que usar nomes de usuário diferentes, por isso deve ser especificado explicitamente.

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

Eu tentei variações diferentes 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/'

Responder1

O que você está fazendo aí é no mínimo 'complicado'. Pelo que entendi, você se conecta a um servidor e solicita que ele sincronize com outro servidor.

Para facilitar o uso, você pode especificar a porta e o usuário a serem usados ​​na configuração ssh local para um host específico. 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 sincronizar novamente os arquivos para dest_host de source_host com:

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

Supondo que o sshd de dest_host escuta na porta 50000. Você também pode querer dar uma olhada na opção "-r" / "-u" do rsync.

Responder2

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ário diferentes para dois hosts. Você também pode usar curingas no nome do arquivo, como *.

informação relacionada