Bonjour
Quelqu'un connaît la syntaxe pour récuperer les valeurs et la clef d'un hash d'un hash ?
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 $INFRA{$CFG{RADROOT}} = 'SRV1'; my %SERVEURS; $SERVEURS{SRV1}{SERVICE1} = 'CONFIGURATION SERVER'; $SERVEURS{SRV1}{SERVICE2} = 'Integration Server Policy Server on Port 3473'; $SERVEURS{SRV1}{SERVICE3} = 'Messaging Server (rms)'; $SERVEURS{SRV1}{SERVICE4} = 'MSI Redirector'; $SERVEURS{SRV1}{SERVICE5} = 'Notify Daemon'; $SERVEURS{SRV1}{SERVICE6} = 'Scheduler Daemon'; while (($KEY, %VAL) = each (%SERVEURS)) { if ($INFRA{$CFG{RADROOT}} eq $KEY) { print $INFRA{$CFG{RADROOT}}."\n"; while (($SRV, $TXT) = each (%VAL)) { print "$SRV\n"; my @SVC = `net stop $SRV`; if (grep('arrt',@SVC)){sys_log($FILELOG,'SERV',"$SRV ($TXT) Statut : STOP");}else{sys_log($FILELOG,'SERV',"$SRV ($TXT) Statut : NOT RUNNING");} } } }
J'ai trouvé une solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 sub netservices { my $STATUT = shift; my $SERVICES =\%SERVEURS; sys_log($FILELOG,'SERV',"$STATUT Services"); for my $KEY (keys %$SERVICES) { print "$KEY\n"; if ($INFRA{$CFG{RADROOT}} eq $KEY) { while (($SRV,$VAL) = each (%{$SERVICES ->{ $KEY }})) { print "net $STATUT $SRV ($SERVICES->{$KEY}->{$SRV})\n"; my @SVC = `net $STATUT $SRV`; if ($STATUT eq 'STOP') {if (grep('arrt',@SVC)){sys_log($FILELOG,'SERV',"Statut : STOP");}else{sys_log($FILELOG,'SERV',"Statut : NOT RUNNING");}} else {if (grep('dmarr',@SVC)){sys_log($FILELOG,'SERV',"Statut : START");}else{sys_log($FILELOG,'SERV',"Statut : NOT RUNNING");} } } } } }
Partager