Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Discussion: Perl et apache

  1. #1
    Invité de passage
    Homme Profil pro Stéphane
    Ingénieur Systèmes Réseaux et Supervision
    Inscrit en
    octobre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Nom : Homme Stéphane
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Systèmes Réseaux et Supervision

    Informations forums :
    Inscription : octobre 2012
    Messages : 11
    Points : 1
    Points
    1

    Par défaut Perl et apache

    Bonjour,

    J'avais déjà poster ici pour quelques soucis de perl pour superviser apache depuis j'ai bien avancer mais il me reste un soucis alors voila j'ai une sortie de commande qui me donne :

    --------------------------------------------------------------------------

    Proxy LoadBalancer Status for balancer://xx-xxxxxx-xxxxxxx

    SSes Timeout Method
    - 10 bybusyness

    Sch Host Stat Route Redir F Set Acc Wr Rd
    ajp hostname Init Ok 1 0 6422 862K 29M

    --------------------------------------------------------------------------

    Proxy LoadBalancer Status for balancer://xx-xxx-xxxxxxx
    SSes Timeout Method
    - 10 bybusyness

    Sch Host Stat Route Redir F Set Acc Wr Rd
    http hostname Init Ok 1 0 0 0 0

    --------------------------------------------------------------------------

    Mon but est de récupérer différents éléments des différents blocs (un bloc situé entre les ----). Ces éléments sont en gras.
    Le problème il peut y avoir plusieurs lignes dans la liste avec hostname et status qu'il faut récupérer, sur cette ligne aucun élément ne peut être considérer comme étant présent à chaque fois.

    Je bloque donc pour faire une boucle qui donnerait tant que j'analyse une ligne pour xx-xxxxxx-xxxxx je reste dans ce bloc, d'une fois que j'ai toutes les lignes je passe au bloc suivant.

    Voila mon morceau de code pour ça où j'en suis :

    sub verif_lb_status {

    my @resultat = qx/apachectl fullstatus 2>\/dev\/null/;

    # Si la commande à réussie
    if (@resultat > 0) {

    # Pour chaque ligne
    foreach (@resultat) {

    # Parsing de la ligne (pattern cherchée : définition du balancer sous format xx-xxxxxx-xxxxxxx)
    $_ =~ /Proxy\s+LoadBalancer\s+Status\s+for\s+balancer:\/\/(\w)\n/ ;
    my $balancer = $1

    # Parsing de la ligne (pattern cherchée : )
    $=~ /\s+\w\s+(\w[^Host])\s+\w\s+(\w[^Stat])\s+\w\s+\w\s+\w\s+\w\s+\w\s+\w\s+\w\n/

    # Si la ligne match
    if (defined $1 && $1 ne '' && defined $2 && $2 ne '') {
    my $load_balancer_hostname = $1;
    my $load_balancer_status = $2;
    if ($load_balancer_status eq "OK") {
    $load_balancer_status = 1;
    } else {
    $load_balancer_status = 0;
    }

    # Ligne de commande pour ovo (format: opcmon "nom_policy"=etat_load_balancer)
    my $cmd = 'opcmon "' . Opts::get_option($OPT_POLICY) . '"=' . $load_balancer_status ' -object "' . 'load_balancer_hostname' .' -option balancer="' . $balancer . ' -option load_balancer_hostname="' . $load_balancer_hostname . '" -option load_balancer_status="' . $load_balancer_status . '"';

    # Si debug
    Utils::trace(1, $cmd . "\n");

    # Envoi du résultat à ovo via opcmon
    system($cmd);

    last;
    }
    }
    }
    }


    Aidez moi, si il faut quelques précisions je suis la.

    Merci.

  2. #2
    Nouveau Membre du Club
    Homme Profil pro
    Inscrit en
    mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : mars 2010
    Messages : 84
    Points : 34
    Points
    34

    Par défaut

    Salut encarnado,
    C'est plus lisible si tu utilises la balise [ CODE ] pour ton code informatique et l'indentation ça peut être pratique.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •