Rsync over ssh fonctionne bien à chaque fois.
Cependant, essayer de rsync sur un hôte qui n'autorise que les connexions sftp, mais pas les connexions ssh, génère l'erreur suivante:
rsync -av / source utilisateur ssh @ remotehost: / target /
Non correspondance de version de protocole - votre shell est-il propre? (voir la page de manuel rsync pour une explication) Erreur rsync: incompatibilité de protocole (code 2) dans compat.c (171) [expéditeur = 3.0.6]
Voici la section pertinente de la page de manuel rsync:
Ce message est généralement dû au fait que vos scripts de démarrage ou vos installations de shell à distance génèrent des déchets indésirables sur le flux utilisé par rsync pour son transport. La façon de diagnostiquer ce problème consiste à exécuter votre shell distant comme suit:
ssh remotehost /bin/true > out.dat
puis regardez out.dat. Si tout fonctionne correctement, out.dat devrait être un fichier de longueur zéro. Si vous obtenez l'erreur ci-dessus de la part de rsync, vous constaterez probablement que out.dat contient du texte ou des données. Regardez le contenu et essayez de déterminer ce qui le produit. La cause la plus courante est constituée par des scripts de démarrage de shell mal configurés (tels que .cshrc ou .profile) contenant des instructions de sortie pour les connexions non interactives.
Essayer ceci sur mon système a produit ce qui suit dans out.dat:
ssh-dummy-shell: Commande non autorisée.
Comme je le pensais, l'hôte n'autorise pas les connexions SSH.
Le lien suivant montre qu'il est possible d'accomplir cette tâche en utilisant un fusible avec sshfs - toutefois, il est extrêmement lent et ne convient pas à une utilisation en production.
Existe-t-il une chance de faire fonctionner sftp rsync?
csync /home/csync sftp://csync@krikkit.galaxy.site:2222/home/csync
voir cette réponse .
lftp -e "mirror -eRv /local/dir/ /remote/dir; quit;" sftp://user@server:port