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!


Reply via email to