Então, eu estava tentando baixar um arquivo de um host remoto conectado com SSH para uma pasta local no meu Mac usando rsync
. O comando que usei é:
$ rsync --progress -avz -e "ssh [email protected] -i ~/.ssh/keyFile" [email protected]:/path/to/files/ ~/Downloads/
E aqui está o que é solicitado:
[email protected]'s password: [I typed the password here]
bash: 1.2.3.4: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.3]
Parece estranho que o endereço do host remoto 1.2.3.4
seja interpretado como um comando?! Não tenho certeza de como e por que isso acontece. Como eu poderia atualizar o comando para obter o resultado esperado e começar a copiar o arquivo?
Tenho certeza de que você não deseja incluir a parte user@host do comando ssh no sinalizador -e. Tentar
O
ssh
comando, quando usado com a opção-e
(ou--rsh
) emrsync
, não deve precisar mencionar o host remoto pelo nome, pois isso faz parte da especificação de origem (no seu comando).No seu caso, bastaria usar
rsync
executará o comando fornecido-e
junto com o caminho de origem. Você pode ver o comando exato sendo executado se usar ainda outro-v
. Provavelmente será algo comoAqui, você pode ver que
1.2.3.4
seria interpretado como um comando a ser executado no host remoto como usuárioroot
(tomando o comando real que deveria ser executado como argumentos de linha de comando).rsync
inicia um "remetente" no lado de origem da cópia do arquivo e um "receptor" no lado de destino. Esses dois processos estão então comunicando os dados reais e as somas de verificação etc. entre si para realizar a cópia do arquivo. Ossh
comando que você vê acima é o comando quersync
usa para (tentar) iniciar o remetente no host remoto. O--server --sender
etc. são sinalizadores de linha de comando internos que sãorsync
usados para essa finalidade. Orsync
manual basicamente diz "não use essas opções você mesmo".No seu caso, você pode ver na mensagem de erro que o receptor (
rsync
executando localmente) está tendo problemas de comunicação com o remetente no host remoto.ssh
Isso ocorre porque o remetente não foi iniciado corretamente e, por sua vez, foi devido ao comando incorreto .