IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Commande FTP - tester retour des "put"


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 46
    Points : 26
    Points
    26
    Par défaut Commande FTP - tester retour des "put"
    Bonjour à tous,

    je dois transférer des données (via FTP) et faire une mise à jour en base, mais seulement si tout à été transféré... j'ai pensé aux code retours de l'instructions "put"... mais comment peut-on les récupérer ? Y a-til une autre solution ?

  2. #2
    Membre expérimenté Avatar de alexrtz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 639
    Points : 1 359
    Points
    1 359
    Par défaut
    Salut,

    Quand lances un commandes FTP, tu as une réponse sous la forme d'une chaîne de caractères.

    En comparant la réponse avec ce que tu devrais trouver tu sauras s'il y a eu un problème ou pas.
    "Je suis incapable d'expliquer ce qui se passa ensuite : je lâchai quelque chose, quelque chose à quoi je m'agrippais depuis toujours sans m'en rendre compte. Je m'enfonçais dans une obscurité chaude, moelleuse et protectrice, tandis qu'un loup montait la garde par mes propres yeux."

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    euh... je ne sais pas si on parle de la même chose.. :

    quand je teste le retour d'un FTP, il est toujours à OK (connexion FTP toujours réussie). Ce qui m'interesse, c'est lors de la session, le résultat des différents "put" de fichier, à savoir si les transferts se sont correctement effectués.... Est-ce possible de récupérer cela ?

  4. #4
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ftp -i trucmuche << EOT
    cd truc
    put machin
    cd ../machin
    put bidule
    bye
    EOT > historique.log
    après tu analyse historique.log pour voir les valeurs renvoyés par les puts.
    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >grep -e 150 -e 226 historique.log
    150 Opening ASCII mode data connection for fic/G755BE.dat (10.177.61.212,4242).
    226 Transfer complete.
    si tu as le 150 mais pas le 226 le transfert à bien été lancé mais a echoué.

    par rapport au log complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Connected to plg.
    220 plg FTP server (Compaq Tru64 UNIX Version 5.60) ready.
    331 Password required for exs.
    230 User exs logged in.
    200 Type set to A.
    200 PORT command successful.
    150 Opening ASCII mode data connection for fic/G755BE.dat (10.177.61.212,4242).
    226 Transfer complete.
    1958772 bytes sent in 1.59 secs (1.59 secs, 1203.92 Kbytes/s)
    221 Goodbye.
    chaque ligne de FTP répond avec un code message (ici 220 331 230 200 150 226 221 etc ....) à toi de te servir de ces codes pour analyser les retours des put mput get mget rename et toutes commande FTP que tu veux analyser.
    Comité de lutte contre le langage SMS sur les forums
    Veuillez écrire dans un langage compréhensible par les humains, merci.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Dans mes tests, j'ai un cas d'erreur ( quand il ne trouve pas les fichiers à transférer) qui ne renvoie pas de code...

    mais selon ta méthode, la présence du test 226 permet de dire que le transfert est ok, c'est bien ça ?...

    j'avais pensé à un truc dans le genre (tester les codes renvoyés par les commandes), mais il faut être sur des codes retournés.... j'avais vu un post où le gars faisait un grep des ocde 4** et 5** ... s'il en avait, c'était une erreur... or dans mon cas, je n'ai même pas de code erreur... mais par contre, je n'ai pas le code 226 ! bien vu bster !!

    je pense que je vais rester sur cette solution... en tout cas merci !

  6. #6
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    Citation Envoyé par pimousse_on_ice
    Dans mes tests, j'ai un cas d'erreur ( quand il ne trouve pas les fichiers à transférer) qui ne renvoie pas de code...

    mais selon ta méthode, la présence du test 226 permet de dire que le transfert est ok, c'est bien ça ?...
    oui quand ça échoue tu as que le message 150 mais pas le 226 correspondant.

    Attention je penseque que pour le put et le get c'est les même partout mais pour les autres je sais pas si le reste est standard...
    Comité de lutte contre le langage SMS sur les forums
    Veuillez écrire dans un langage compréhensible par les humains, merci.

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Les code positifs entre 0 et 400 représentent un succès, au-dessus c'est une erreur... Mais regarde plutôt la réponse que je t'ai donné sur le forum Perl, tu verras qu'avec Net::FTP, tu as directement accès au code de réponse, ce qui est tout de même plus pratique que d'analyser un log, puis éventuellement de reprogrammer un chargement, etc...

    --
    Jedaï

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Mauvaise nouvelle...
    je n'ai pas réussi à convaincre mon client... donc pas d'utilisation de Net::FTP, et donc solution = le grep (chouette )....

    dans mon cas, etant donné que l'erreur que j'ai eu ne renvoyait aucun code retour, je vais donc chercher le nb de code 226 (qui correspondra au nb de transfert de fichier, car se sont des "put", 1 par 1. Je sais, il y a mput, mais dans mon cas, je ne peux pas l'utiliser : specif du client ! ).... ça fait un peu bricolage mais bon...

    Merci de vous etre penché sur le pb !

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par pimousse_on_ice
    Mauvaise nouvelle...
    je n'ai pas réussi à convaincre mon client... donc pas d'utilisation de Net::FTP, et donc solution = le grep (chouette )....

    dans mon cas, etant donné que l'erreur que j'ai eu ne renvoyait aucun code retour, je vais donc chercher le nb de code 226 (qui correspondra au nb de transfert de fichier, car se sont des "put", 1 par 1. Je sais, il y a mput, mais dans mon cas, je ne peux pas l'utiliser : specif du client ! ).... ça fait un peu bricolage mais bon...

    Merci de vous etre penché sur le pb !
    Ton client veut bien que tu génères ton script bash en Perl, mais ne veut pas que tu fasses les téléchargements direct en Perl ? Bizarre... Et il ne veut pas que tu utilises mput... Il a l'air d'avoir de drôle d'exigences ton client !

    Bon courage en tout cas !
    --
    Jedaï

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    A qui le dis-tu !!
    Mais bon, ça rassure de voir que je ne suis pas la seule à penser ça !

    Merci pour tout en tout cas!

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo