Rsync sur ssh, ça marche très bien à chaque fois.
Cependant, en essayant de rsynchroniser avec un hôte qui n'autorise que les connexions sftp, mais pas les connexions ssh, on obtient l'erreur suivante :
rsync -av /source ssh user@remotehost:/target/
de la version du protocole -- est-ce que votre Shell est-il propre ? (voir la page de manuel rsync pour une explication) Erreur rsync : incompatibilité de protocole (code 2) à compat.c(171) [sender=3.0.6]
Voici la section pertinente de la page de manuel rsync :
Ce message est généralement causé par votre scripts de démarrage ou par votre installation scripts distante produisant des des déchets indésirables sur le flux que rsync utilise pour son transport. La façon de diagnostiquer ce problème est d'exécuter votre installation de remote scripts comme ceci :
ssh remotehost /bin/true > out.dat
puis regardez le fichier out.dat. Si tout fonctionne correctement, alors out.dat devrait être un fichier de longueur nulle. Si vous obtenez l'erreur ci-dessus de rsync vous trouverez probablement que out.dat contient du texte ou des données. données. Regardez le contenu et essayez de ce qui le produit. Le site cause la plus com cause la plus fréquente est une configuration incorrecte des Shellde démarrage Shell (tels que les fichiers comme .cshrc ou .profile) qui contiennent des des instructions de sortie pour les connexions non interactives.
En essayant cela sur mon système, j'ai obtenu le résultat suivant dans out.dat :
ssh-dummy-Shell : Commande non autorisée.
Comme je le pensais, l'hôte n'autorise pas les connexions ssh.
Les éléments suivants enlace montre qu'il est possible d'accomplir cette tâche en utilisant fuse avec sshfs - cependant, c'est extrêmement lent, et pas adapté à une utilisation en production.
Y a-t-il une chance de faire fonctionner rsync sftp ?