Forum Programmation.shell [ksh] Log telnet

Posté par  .
Étiquettes : aucune
0
3
avr.
2009
Bonjour


Dans un script en ksh je lance un telnet sur une ip puis j'envoie la commande stop, ce qui a pour but de quitter le telnet qui écrit un code retour ("ok" si réussi ou "nok" si échec).

J'aimerais savoir comment récupérer ce log, c'est à dire la réponse (ok/nok) pour me permettre de savoir si l'envoi de ma commande s'est bien déroulé.

Actuellement je ne suis capable que de vérifier le retour de telnet (si la connection est passé/refusée) mais pas ce qui se fait dans le 'prompt' de celui-ci.

Dans les options de la commande j'ai vu un '-n tracefile', je ne sais pas trop si c'est ça mais je n'arrive pas à le faire fonctionner de toute façon...


A vous... ;)
  • # expect

    Posté par  (site web personnel) . Évalué à 2.

    même si telnet est un outil d'un autre âge, bref...

    regarde du côté de expect qui permet de scripter telnet : en:Expect te donnera des exemples et des liens intéressants (bon, en anglais...).
  • # output

    Posté par  . Évalué à 1.

    Expect c'est une usine à gaz, ça me fait trop de lignes à écrire juste pour récupérer une réponse. Et puis c'est pas natif sous Unix :(

    Il me faudrait un moyen de rediriger le output du telnet...
    • [^] # Re: output

      Posté par  . Évalué à 1.

      Dans ton cas, tu pourrais avantageusement remplacer telnet par netcat.
      • [^] # Re: output

        Posté par  . Évalué à 1.

        J'aimerais bien mais je ne peux pas ce n'est pas natif sous Unix (Solaris).

        D'autres idées ?
        • [^] # Re: output

          Posté par  . Évalué à 1.

          Poser une question sur LinuxFr sans préciser que tu n'es pas sous Linux, ça n'aide pas à te donner des réponses pertinentes ...

          Pour avoir travaillé sur diverses variantes d'Unix (HPUX, AIX, Solaris, Linux), rien n'empêche d'utiliser expect ou netcat sur ces systèmes.
          Je pense que ton problème est plus dû au fait que tu ne peux pas y installer d'outils complémentaires.

          A la lecture de tes réponses précédentes, tu as l'air de penser que Solaris est le seul Unix. Ce n'est qu'une des variantes, au même titre que Linux ou BSD. Pour plus d'infos : http://www.levenez.com/unix/
  • # Unix solaris

    Posté par  . Évalué à 1.

    Bien vu, je préfère éviter l'installation d'outils complémentaires, sauf si c'est vraiment justifié. Expect c'est trop long à mettre en oeuvre par rapport à ce que je veux faire, et je suis obligé d'utiliser telnet pour me connecter sur la machine distante.

    Effectivement j'aurais pu préciser que j'étais sous un Unix propriétaire (Solaris) et non sous Linux. Par contre je ne vois pas où est-ce que j'ai dit ou laissé penser que Solaris est le seul Unix. Sachant d'ailleurs que j'ai bien plus travaillé sur des BSD que sur Solaris ou Linux...

    Et en même temps je ne crois pas qu'un telnet (et la façon dont récupérer son output) diffère énormément d'un Unix à un autre. Sans prendre pour exemples des Unix exotiques, anciens ou très peu utilisés ;)

    Le seul soucis est qu'il y a énormément de commandes sous Solaris qui ne possèdent que les options rudimentaires de base. Et ça complique parfois la tâche.

    Donc j'espère encore trouver une autre solution me permettant de récupérer cet output...

    Merci.
    • [^] # Re: Unix solaris

      Posté par  . Évalué à 1.

      Si tu ne peux rien installer, il y a peut-être une solution avec telnet: il faut introduire une temporisation après la dernière commande envoyée à telnet pour pouvoir récupérer la réponse.

      {
        echo stop
        sleep 30
      } | telnet ip_distante > telnet.log
      La temporisation est à ajuster en fonction du temps de réponse de la machine distante.
      Tu devrais alors pouvoir récupérer les messages de telnet dans telnet.log

Suivre le flux des commentaires

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