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

Programmation et administration système Perl Discussion :

Script ping pour mrtg


Sujet :

Programmation et administration système Perl

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Script ping pour mrtg
    Bonjour à tous !

    J'ai trouvé en fouillant sur la toile un script de ping fonctionnel

    Cependant, je ne sais pas comment réussir à récupérer des valeurs "numériques" pour les afficher dans MRTG afin de faire un graphe.

    Si quelqu'un peut m'aider, je vous en serais reconnaissant

    Code en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    use Net::Ping;
    $p = Net::Ping->new('icmp');
    my $main_ip="$ARGV[0]";
     
    if ($p->ping($main_ip,1)){
        $result=true;
        print "$main_ip is alive \n";
    }else{
        print "$main_ip is down \n";
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    La méthode ack() retourne l'adresse IP (entre autre).
    Regarde l'exemple ici.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre réponse.

    Cependant je recherche plus à transformer les valeurs "is alive" et "is down" en valeur interprétable pour MRTG

    Par exemple afficher 100 quand l'adresse est pingable, et 0 dans le cas échéant.

    EDIT :

    J'en arrive à la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    use Net::Ping;
    $p = Net::Ping->new('icmp');
    my $main_ip="$ARGV[0]";
     
    if ($p->ping($main_ip,1)){
        $result=100;
    }else{
        $result=0;;
    }
     
    print "$result\n";
    print "$result\n";
    print "0\n";
    print "0";
    j'ai mes 4 valeurs qui s'affichent pour les log, cependant MRTG ne peut toujours pas interpréter ce script.
    Je pense qu'il ne reconnait pas les valeurs "100" et "0" comme entier.

    Que puis-je faire pour modifier cela?

    Merci par avance

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bon, j'ai réussi par moi même !

    Merci quand même Gilou, en fait c'était tout bête ^^'

    Pour ceux qui étaient dans la même galère que moi, voici le script final utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    use Net::Ping;
    $p = Net::Ping->new('icmp');
    my $main_ip="$ARGV[0]";
    if ($p->ping($main_ip,1)){
        $result=int(100);
    }else{
        $result=int(0);
    }
    print "$result\n";
    print "$result\n";
    print "$0\n";
    print "$0\n";

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je ne vois pas en quoi écrire int(100) au lieu de 100 change quelque chose (surtout pour l'écrire ensuite sous forme de chaine).
    J'imagine que vous avez fait d'autres modifications ailleurs, peut-être même en dehors du script perl.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    En fait, ce script n'avait pas pour but d'être affiché dans une fenêtre DOS.

    Je devais utiliser ce script dans l'outil MRTG, et ce dernier ne prends en compte que des nombres.

    Ainsi, avant de mettre (int)100, MRTG prenait ce résultat pour une chaine de caractère, et ne pouvait donc pas l'utiliser

  7. #7
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Je ne vois pas en quoi écrire int(100) au lieu de 100 change quelque chose (surtout pour l'écrire ensuite sous forme de chaine).
    J'imagine que vous avez fait d'autres modifications ailleurs, peut-être même en dehors du script perl.
    Je me posais exactement les mêmes questions.

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Il n'y a pas de typage fort en perl : un nombre peut être écrit indifféremment sous forme d'un nombre littéral (100), ou sous forme d'une chaine de caractère ("100").
    Par ailleurs, tu écris ce nombre dans une chaine dans ton script :
    Le résultat dans le fichier de sortie du print doit être "strictement" le même. Je réitère donc qu'il y a sûrement eu un changement ailleurs (peut-être dans la manière d'appeler MRTG avec ce fichier construit en perl.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Ah d'accord, je ne savais pas cela !

    A vrai dire, j'ai commencé à utiliser perl quand j'ai commencé mon stage (la semaine dernière)

    Ce que je ne comprends pas c'est que je n'ai vraiment rien changé d'autre.

  10. #10
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Peux-tu ré-essayer ton premier script, stp ?
    Sinon, comment appelle-tu MRTG avec le résultat de ton script perl ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Quand je réutilise mon premier script, j'ai cette erreur :

    2015-04-22 11:26:34: WARNING: Problem with External get 'C:\mrtg-2.17.4\bin\Serv1\ping.pl x.x.x.x':
    Expected a Number for 'in' but nothing'

    2015-04-22 11:26:34: WARNING: Problem with External get 'C:\mrtg-2.17.4\bin\Serv1\ping.pl x.x.x.x':
    Expected a Number for 'out' but nothing'


    J'appelle mon script de cette manière :

    Target[ping]: `perl C:\mrtg-2.17.4\bin\ping.pl x.x.x.x`
    MaxBytes[ping]: 100

    J'intègre directement le script perl dans le fichier de config MRTG, à la place de mettre les OID.

  12. #12
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Peux-tu lancer ce script en dehors de MRTG et montrer le résultat ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Lorsque je lance le script (le premier comme le deuxième) hors de MRTG (juste dans une fenêtre DOS), j'ai mes résultats (100 100 0 0) qui s'affichent parfaitement

  14. #14
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    J'avoue être perplexe et ne pas comprendre, ... et je n'aime pas ne pas comprendre
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    J'avoue que je ne comprends pas tout non plus.

    Mais, l'essentiel, c'est que ça marche non?

    En tout cas merci à tous !

  16. #16
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par Zinaye Voir le message
    Mais, l'essentiel, c'est que ça marche non?
    Je dirais que oui dans ton cas, mais quelque chose qui marche sans qu'on ne sache pourquoi peut, de manière plus générale, cacher un bug qui se révélera dans un nouveau cas d'utilisation.
    Je ne dis pas cela pour t'inciter à continuer à chercher bien sûr, mais ça me laisse un goût d'inachevé.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    C'est vrai que ça me parait bizarre aussi..

    Je vais continuer mes recherches, en gardant ce script fonctionnel pour le moment.

    Merci encore de m'avoir aider à résoudre mon problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script php pour test de continuité (ping)
    Par kiwilicious dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 16/02/2014, 20h17
  2. script php pour test de continuité (ping)
    Par gliricidialo dans le forum Langage
    Réponses: 9
    Dernier message: 26/03/2010, 21h13
  3. Script oracle pour windows & unix
    Par ALLFA dans le forum Oracle
    Réponses: 2
    Dernier message: 05/07/2005, 14h52
  4. Script sql pour exporter BD de sql server vers access
    Par kayser dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/12/2004, 15h48

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