09 octobre 2009

Script perl : Tester une connexion via un telnet en perl

J'ai trouvé ce script sur un forum. Son but est d'effectuer un telnet en prenant comme paramètre une IP et un port. Ce qui est génial c'est qu'il gère les timeout, alors que si vous faîtes le test en ligne de commande vous pouvez attendre plusieurs minutes avant d'avoir une réponse.

Ce qui est intéressant c'est qu'en gérant les timeout, ce script perl peut être intégré dans un outil de monitoring comme zabbix. En effet, le serveur zabbix a un timeout de 30 secondes maximum, ce qui implique un problème de récupération des données sur le master.

Ci-dessous le script en question :

#!/bin/perl

use Net::Ping;

my ($host,$port)=(shift,shift);

my $timeout=5;

    $p = Net::Ping->new("tcp", $timeout);

    $p->{port_num} = $port;

    $ret=$p->ping($host);

    # 0=ok, 1=non joignable

    undef($p);

    exit($ret==0);

Appel du script :
testTelnet.pl IP Port



Posté par fatihaelh à 18:17 - PERL - Commentaires [7] - Permalien [#]

Commentaires

    Bravo

    Bravo et merci pour votre site. J'ai obtenu pas mal d'informations dans des domaines très divers.

    Posté par Alain, 12 octobre 2009
  • C'est un plaisir de voir que mes modestes articles sont utiles

    Posté par fatiha, 12 octobre 2009
  • Ping et pas telent

    Merci Fatiha pour ce script, mais il ne s'agit pas telent, il s'agit plutot de ping.
    Le telnet s'effectue par la librairie Net::Telnet et gere par defaut le timemout et retourne le résultat de telnet:
    use Net::Telnet;

    $telnet = new Net::Telnet ( Timeout=>10,
    Errmode=>'die');
    $telnet->open('fatiha.canalblog.com');
    $telnet->waitfor('/login: $/i');
    $telnet->print('bilbo');
    $telnet->waitfor('/password: $/i');
    $telnet->print('baggins');
    $telnet->waitfor('/\$ $/i');
    $telnet->print('who');
    $output = $telnet->waitfor('/\$ $/i');
    print $output;

    Posté par Hammadi, 23 juillet 2010
  • Merci pour cette correction

    Je te remercie Hammadi pour cette correction, je vais regarder de plus près ce que propose cette librairie (Net::Telnet). J'aimerai bien lancer par son intermédiaire des get de pages bien précises.

    Posté par Fatiha, 23 juillet 2010
  • Get des pages

    Que veux tu dire exactement par "get de pages bien précises"?
    telechargement de contenu des pages http? ou verifier si l'url est valide ou quoi exactement? parceque les deux sont differentes.
    PS: par hasard je me suis connecté de nouveau au blog et dommage qu'il n y a pas de notifications.

    Posté par Hammadi, 26 juillet 2010
  • Salut,

    Ce que je veux faire, c'est tester qu'une URL est accessible. J'ai regardé un peu sur cpan au niveau de la doc mais ce n'est pas trop détaillé. En plus ce que je peux tester c'est une page https, ce qui n'est pas possible avec telnet, à moins d'installer la librairie telnet-ssl.

    Pour les notifs, c'est canalblog qui gère pas moi et en effet c'est dommage.

    Posté par Fatiha, 26 juillet 2010
  • Get des pages

    Que veux tu dire exactement par "get de pages bien précises"?
    telechargement de contenu des pages http? ou verifier si l'url est valide ou quoi exactement? parceque les deux sont differentes.
    PS: par hasard je me suis connecté de nouveau au blog et dommage qu'il n y a pas de notifications.

    Posté par Hammadi, 26 juillet 2010

Poster un commentaire