Please could the wise folks give me some help. Something is wrong and I
can not find out what.

When I run this program it returns everything is OK (Suspect a logic
error somewhere), which is not possible as the logs in question do have
data that I require (i.e. ORA-12571: TNS:packet writer failure).

This script is to check the Oracle Logs for errors beginning with "ORA-"
i.e. ORA-013100

Then it should return only the errors. You will see I try to reverse the
file as I only want the newest errors first, anyway I want to build that
functionality into it eventually that I can set a limit...but that is
for later.

Here is my script.

 

****************************** SNIP ***********************************

 

#!/usr/bin/perl -w

use strict;

use warnings;

# use POSIX 'strftime';

# For later functionality.

# my $day = (strftime('%w', localtime()) - 1);

 

# Save all the sites to be checked in a text file

# Example line:-

# OrcaleSid:://windowsserver/share/directory/logfile.log

 

open SITES, "c:/denham/dba/sites/alrtlogs.txt" || die "Can not Open
alrtlogs.txt: $!";

 

# Now while through the file and do each site.

while (<SITES>) {

    (my $sid, my $loc) = split(/::/);

    chomp($sid);

    chomp($loc);

    

    print "~~~~~~~~~~~~~~~~~~~~~~~~\n";

    print "~~ Checking $sid ~~\n";

    print "~~~~~~~~~~~~~~~~~~~~~~~~\n";

 

# open the LogFile    

    open SITELOG, "$loc" ||die "Can not open $loc: $!";

 

# I suspect that my mistake may be around here :-)

# Check the file for any ORA- entries    

    if($_ =~ m/ORA-/) {

        # If it contains records, reverse the file

        my @lines = reverse($_);

        my $rownum = 0;

        

            # Starting from the last line look for the error

        for my $line($lines[$rownum]) {

            if ($lines[$rownum] =~ m/ORA-/) {

                print "$lines[$rownum]\n";

            }

        $rownum = $rownum + 1;

        }

    }else{

        print "Nothing to Report\n";

    }

    close SITELOG;

}

*************************************** SNIP
COMPLETE******************************

 

Many Thanks

Denham

Reply via email to