Rsync sobre ssh, funciona muito bem sempre.
No entanto, tentar rsync para um host que permita apenas logons sftp, mas não logins ssh, fornece o seguinte erro:
rsync -av / source ssh user @ remotehost: / target /
incompatibilidade de versão do protocolo - seu shell está limpo? (consulte a página do manual rsync para obter uma explicação). Erro rsync: incompatibilidade de protocolo (código 2) em compat.c (171) [remetente = 3.0.6]
Aqui está a seção relevante da página de manual do rsync:
Essa mensagem geralmente é causada pelos scripts de inicialização ou pelo recurso remoto do shell, produzindo lixo indesejado no fluxo que o rsync está usando para seu transporte. A maneira de diagnosticar esse problema é executar o shell remoto assim:
ssh remotehost /bin/true > out.dat
então veja out.dat. Se tudo estiver funcionando corretamente, out.dat deve ser um arquivo de tamanho zero. Se você está recebendo o erro acima do rsync, provavelmente encontrará que o out.dat contém algum texto ou dados. Observe o conteúdo e tente descobrir o que está produzindo. A causa mais comum são os scripts de inicialização do shell configurados incorretamente (como .cshrc ou .profile) que contêm instruções de saída para logons não interativos.
Tentar isso no meu sistema produziu o seguinte em out.dat:
ssh-dummy-shell: comando não permitido.
Como eu pensava, o host não está permitindo logins ssh.
O link a seguir mostra que é possível realizar essa tarefa usando o fusível com sshfs - no entanto, é extremamente lento e não é adequado para uso em produção.
Existe alguma chance de fazer o rsync sftp funcionar?
csync /home/csync sftp://csync@krikkit.galaxy.site:2222/home/csync
veja esta resposta .
lftp -e "mirror -eRv /local/dir/ /remote/dir; quit;" sftp://user@server:port