On 26 Jun 2001 10:23:13 -0500, Tom Yarrish wrote:
> Well, if the tail filehandle acts like a regular tail on the command line,
> then no. The first line in the tail does not contain the pattern, the
> second line does. Here's what the tail on that log looks like:
>
> INFOR 05:02:00 AuthData=()
> WARNG 05:02:00 VCI_Login : TECH_VCI_ERROR 00120 - EXCHANGE SERVICE NOT
> AVAILABLE
> INFOR 05:02:05 Login asked for 090CHSIM001
> INFOR 05:02:05 Traite_Login() MessGl->authorizationDataLength=24
> INFOR 05:02:05 AuthData=()
> WARNG 05:02:05 VCI_Login : TECH_VCI_ERROR 00120 - EXCHANGE SERVICE NOT
> AVAILABLE
> INFOR 05:02:10 Login asked for 090CHSIM001
> INFOR 05:02:10 Traite_Login() MessGl->authorizationDataLength=24
> INFOR 05:02:10 AuthData=()
> WARNG 05:02:10 VCI_Login : TECH_VCI_ERROR 00120 - EXCHANGE SERVICE NOT
> AVAILABLE
>
> (yes, my mail program word wrapped it)
>
> I opted not to do a tail -f, because if the service isn't available, it
> will just keep repeating the lines. What I'm hoping to do (eventually) is
> check this right after it starts up for the day.
>
The first line out of TAIL doesn't match /SERVICE NOT AVAILABLE/ so the
else clause is run which should print "Service is connected." and exit
the program. I think what you want to do is to
#tail -1 gets the last line of the file
open (TAIL, "tail -1 $glmiss_log|") or die "Can't tail on $glmiss_log:
$!\n";
my $status = <TAIL>;
if ($status =~ /SERVICE NOT AVAILABLE/){
print "Service not running, attempting to start.\n";
print "This may take a few minutes.\n";
$fix = 1;
} else {
print "Service is connected.\n";
$fix = 0;
exit;
}
or
#tail -f reads from the file adding more lines every 1 second
open(TAIL, "tail -f $glmiss_log|") or die "Can't tail on $glmiss_log:
$!\n";
while (my $status = <TAIL>){
if ($status =~ /WHATEVER EXCHANGE SAYS WHEN IT IS STARTED/){
print "Service is connected.\n";
$fix = 0;
exit;
} else {
print "Service not running, attempting to start.\n";
print "This may take a few minutes.\n";
$fix = 1;
}
}
--
Today is Boomtime, the 31st day of Confusion in the YOLD 3167
Kallisti!