Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Web
Web Toutes vos questions sur la construction de pages web en Perl (CGI, Ajax, mod_perl, sessions, ...) Avant de poster, veuillez consulter les FAQs perl, les cours Perl et les sources Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 05/12/2012, 12h02   #1
encarnado
Invité de passage
 
Homme Stéphane
Ingénieur Systèmes Réseaux et Supervision
Inscription : 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.
encarnado est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 09h56   #2
socaw
Nouveau Membre du Club
 
Homme
Inscription : mars 2010
Messages : 84
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2010
Messages : 84
Points : 35
Points : 35
Salut encarnado,
C'est plus lisible si tu utilises la balise [ CODE ] pour ton code informatique et l'indentation ça peut être pratique.
socaw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h17.


 
 
 
 
Partenaires

Hébergement Web