Bonjour,
J’ai ce script perl pour faire la connexion au fichier /var/www/mrtg/localhost_2.log puis le script faire la recherche d’une date actuelle.
A l’exécution je veux exécuter ce script comme ca :
>> Perl nom de script.pm localhost_2 max min
Ou
>> Perl nom de script.pm localhost 2 max min
Localhost_2 ,max et min se sont des arguments ARGV[0],ARGV[1] et ARGV[2] .
Remarque : max et min se sont des conditions qu’il ne faut pas les dépasser. Le 2 est le numéro de port , localhost_2.log est le fichier log de mrtg.
Donc je veux quelques modifications ou correction sur ce script pour qu’il devienne exécutable.
Voila le script :
voila le script:
----------------------------------------------------------
#!/usr/bin/perl -w
package mariem;
use Time::Local;
&connection();
&recherche();
#my @line;
sub connection(){
my $adr=$ARGV[0]._2;
open ("file","/var/www/mrtg/$adr.log")|| die ("impossible d'accéder a mrtg.log\n");
}
sub recherché{
#my $line;
my $test=timegm(localtime);
# print"test\n";
# my $test=1210839900 ;
#$line=644 a$test=1208439900;
#1206828000 temp ou le $line=0;
while ( $line = <file> ){
chomp ($line);
@line = split( / /, $line);
next unless defined $line[0];
if ($line[0] ==$test ){
if ($line[4]==0) {
return 0;
print STDOUT "erreur time\n";
}
elsif ($line[4] < $ARGV[1] && $line[2] > $ARGV[2])
{
return 1;
print STDOUT "val exist\n";
}
else{
print STDOUT "val n'est pas dans lintervl\n";
}
}
}
}
1;
Configuration: Windows XP
Internet Explorer 7.0