1 votes

rsync via ssh de linux vers Windows sbs 2003 non conforme au protocole

Duplicata possible :
décalage de la version du protocole - votre Shell est-il propre ?

J'essaie de sauvegarder mon serveur web linux sur notre serveur local Windows sbs 2003 au bureau. J'ai configuré ssh et cwrsync sur le serveur Windows et j'ai confirmé que le serveur linux peut atteindre le serveur Windows via la commande :

ssh RemoteUser@xxx.xxx.xxx.xxx

Il demande un mot de passe et se connecte bien. Cependant, lorsque je lance cette commande pour démarrer la sauvegarde :

rsync -avz -e ssh home/account/public_html/so remote_user@xxx.xxx.xxx.xxx:/cygdrive/c/backup/destination/directory/

J'obtiens cette erreur après avoir entré le mot de passe :

décalage de la version du protocole -- votre Shell est-il propre ?

et ensuite il meurt.

Qu'est-ce que cela signifie, et comment puis-je y remédier ?

0voto

Martin Scharrer Points 181

L'erreur protocol version mismatch -- is your shell clean? signifie que le rsync local reçoit de la machine distante des données invalides qui ne font pas partie du protocole rsync.

Ceci est normalement causé par les messages de connexion automatique Shell comme le message du jour ( /etc/motd ), donc le is your shell clean? partie.

Connectez-vous manuellement à cette machine et regardez si vous obtenez un tel message. Afin de rsync pour fonctionner, vous ne devriez obtenir que l'invite de la ligne de commande à distance. Si vous obtenez un message, essayez de le désactiver. Regardez vos fichiers de configuration Shell (par ex. ~/.bashrc , /etc/bash.bashrc pour le bash Shell) s'ils contiennent une commande produisant cette sortie.

0voto

Andrew Case Points 3349

L'un de vos scripts de connexion (.bashrc/.cshrc/etc.) peut émettre des données vers le terminal alors qu'il ne devrait pas le faire. Cela provoque une erreur de ssh lorsqu'il se connecte et se prépare à copier car il commence à recevoir des données supplémentaires qu'il n'attend pas. Suppression de la sortie qui est générée dans les scripts de démarrage.

Vous pouvez vérifier si votre terminal est interactif et ne sort que du texte en utilisant le code suivant dans un bashrc. Quelque chose d'équivalent existe aussi pour d'autres shells :

if shopt -q login_shell; then
    [any code that outputs text here]
fi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X