Forum Linux.général SCP et code de retour

Posté par  .
Étiquettes : aucune
0
19
sept.
2006
koukou,

J'ai une question relativement precise sur SCP (openssh).

J'utilise un script de mon crue qui fait la copie d'un fichier d'un serveur sur un équipement. Afin de controler que la copie s'est bien passé, je récupère le code de retour de scp.

Jusqu'à maintenant j'utilisais la version 3.4pl1 sur SUSE SLES 8.
j'obtiens donc un comportement comme suit:

# scp -q fichier LOGIN@HOST:/FIC
blabla password:
connection to HOST closed by remote host
# echo $?
#0

=> ma copie c'est bien passé.

Maintenant je me retrouve avec openssh 4.1p1-8, toujours sur une SLES 8.

# scp -q fichier LOGIN@HOST:/FIC
blabla password:
connection to HOST closed by remote host
# echo $?
#1

=> SCP semble declaré que ma copie c'est incorrectement terminée.
Et pourtant, le fichier est bien copié et sa taille est correcte.

Y a t 'il eu des changements de comportements entre la 3.4 et la 4.1 de openssh sur scp induisant ce comportement ?

Le code de retour de , correspond t il toujours au cas ou c'est le remote HOST qui cloture la connexion ?

Quelqu'un sait il ou trouver les codes de retours de SCP autre que le man page qui indique :
"The scp utility exits 0 on success, and >0 if an error occurs."

J'ai essayé un scp dans le genre:

# scp -q fic1 root@localhost:/tmp/fic2
blabla password:
# echo $?
# 0

et la aucun message qui me dit que la connexiona été cloturé

J'en reste perrplexe sur le comportement de scp.

Donc si l'un de vous a déja eu ce genre de problème et des raisons de ce comportement, je suis preneur.

K.
  • # verbose mode?

    Posté par  . Évalué à 3.

    Dans le code de scp.c [1], le main finit par :

    exit(errs != 0);

    Ce qui signifie qu'en cas d'erreur, et ce quelle qu'elle soit, scp retournera une valeur arbitraire > 0, généralement 1.
    La variable errs étant modifiée a différents endroits dans le code.

    Donc a priori tu as bien une erreur durant l'exécution de la commande.
    Encore faut-il pouvoir l'isoler.

    Essaye de lancer scp en verbose mode et regarde si tu as des différences quand le code de retour est 0 ou 1.
    Sinon il va falloir investiguer un peu plus, le printf debugging pouvant être une solution [2] ;)

    Finalement, as-tu vérifier les md5 de tes fichiers (local et distant) ?

    [1] http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/scp.c?(...)

    [2] http://linuxfr.org/~Krunch/22577.html
    • [^] # Re: verbose mode?

      Posté par  . Évalué à 1.

      Merci pour le lien vers le source de scp.

      A force de tests, d'essais et notamment de comparaison d'un scp ok et d'un sur cet equipement, je me suis apercu que ce *$ù% (censuré) utilisait ssh 2, mais que la version de scp etait la 1.99 !!! grrr

      Il "suffit " donc de mettre l'option -1 à scp et c'est bon, plus de connection closed by remote host !

      Probleme qui est donc corrigé :)

      K.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.