Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Script to check for errors

RE: Script to check for errors

From: david hill <david.hill_at_lechateau.ca>
Date: Fri, 21 Mar 2003 16:34:54 -0500
Message-Id: <24738.322747@fatcity.com>


This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible.

------_=_NextPart_001_01C2EFF1.B6422460
Content-Type: text/plain

Here a fast little script I wrote that can be ran every minute

Emails only when it finds a new message

And pages if it finds a new message between 6pm and 5am  

FPATH=/prod/dba/scr

autoload f_xmail  

logfile=/prod/dba/logs/`cat
/prod/dba/sys_data/newpath`/misc_logs/chk_alerts.log
 

echo "$(date +%y-%m-%d_%H:%M) -------- BOK ----------------- $$" >> $logfile

for i in DB1 DB2; do

   typeset -l sub=$(echo $i |cut -c1)

   alert_log="/prod/dump/$sub/alert_$i.log"

   if [ -f $alert_log ]; then #if you don't find an alert log its ok just exit

        line_file="/prod/dump/$sub/ora_line"

        if [ ! -f $line_file ]; then

            echo 0 > $line_file

        fi

        last_line=$(cat $line_file)

        new_line=$(cat $alert_log |wc -l)

        if [ $new_line -lt $last_line ]; then #then the alter log must have been deleted and recreated

              last_line=0

        fi  

        if [ $(tail +$((last_line + 1)) $alert_log |grep ORA- |wc -l) -gt 0 ]; then

                echo "$(date +%y-%m-%d_%H:%M) NEW ORA Messages Found" >>
$logfile
                (echo "From: chk_alerts.ksh"

                 echo "Subject: ORA messages found for $i \n"

                 cat $alert_log ) |mail dba_at_lechateau.ca
#mail the entire log when new messages are found
                if [[ $(date +%H%M) -lt 0600 || $(date +%H%M) -gt 1800 ||
$(date +%u) -gt 5 ]]; then #nobody is around page also
                        echo "$(date +%y-%m-%d_%H:%M) Nobody is at work so
paging also" >> $logfile
                        f_xmail pager ORA messages found for $i

                fi

        fi

        echo $new_line > $line_file

   else

      echo "$(date +%y-%m-%d_%H:%M) NO alert_log found to scan" >> $logfile

   fi

done    

-----Original Message-----
From: Michael Kline [mailto:mkline1_at_comcast.net] Sent: Friday, March 21, 2003 1:40 PM
To: Multiple recipients of list ORACLE-L Subject: Script to check for errors  

Anyone have a "simple" script to scan an alert

log for errors and email a report if found?  

Customer wants something to run "often", but only

email when an error is found. I've got something

that does a bit of that and runs twice a day, but

always sends out.  

Thanks.  

Maks.  

------_=_NextPart_001_01C2EFF1.B6422460
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">

<meta name=Generator content="Microsoft Word 10 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face

	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:r_ansi;
	panose-1:2 11 6 9 2 2 2 2 2 4;}

 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}

-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'>Here a fast little script I wrote that can be ran every minute</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'>Emails only when it finds a new message</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'>And pages if it finds a new message between 6pm and 5am</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>FPATH=/prod/</span></font><font  size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>dba</span></font><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>/scr</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>autoload f_xmail</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>logfile=/prod/</span></font><font  size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>dba</span></font><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>/logs/`cat
/prod/</span></font><font size=2 face="r_ansi"><span style='font-size:10.0pt;
 font-family:r_ansi'>dba</span></font><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>/sys_data/newpath`/misc_logs/chk_alerts.log</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>echo &quot;$(date +%y-%m-%d_%H:%M)

-------- BOK ----------------- $$&quot; &gt;&gt; $logfile</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>for i in DB1 DB2; do</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp; typeset -l sub=$(echo $i |cut -c1)</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp; alert_log=&quot;/prod/dump/$sub/alert_$i.log&quot;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp; if [ -f $alert_log ]; then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #if you don't find an alert log its ok just exit</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line_file=&quot;/prod/dump/$sub/ora_line&quot;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ ! -f $line_file ]; then </span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo 0 &gt; $line_file</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; last_line=$(cat $line_file)</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new_line=$(cat $alert_log |wc -l)</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ $new_line -lt $last_line ]; then&nbsp;&nbsp;&nbsp; #then the alter log must have been deleted and recreated</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; last_line=0</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ $(tail +$((last_line + 1)) $alert_log |grep ORA- |wc -l) -gt 0 ]; then</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;$(date +%y-%m-%d_%H:%M) NEW ORA Messages Found&quot; &gt;&gt; $logfile</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (echo &quot;From: chk_alerts.ksh&quot;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;Subject: ORA messages found for $i \n&quot;</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cat $alert_log ) |mail </span></font><font size=2 face="r_ansi"><span style='font-size:10.0pt;  font-family:r_ansi'>dba</span></font><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>@lechateau.ca&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #mail the entire log when new messages are found</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [[ $(date +%H%M) -lt 0600 || $(date +%H%M) -gt 1800 || $(date +%u) -gt 5 ]]; then #nobody is around page also</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;$(date +%y-%m-%d_%H:%M) Nobody is at work so paging also&quot; &gt;&gt; $logfile</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f_xmail pager ORA messages found for $i</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $new_line &gt; $line_file</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp; else</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;$(date +%y-%m-%d_%H:%M) NO alert_log found to scan&quot; &gt;&gt; $logfile</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>&nbsp;&nbsp; fi</span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 face="r_ansi"><span style='font-size:10.0pt;font-family:r_ansi'>done</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>-----Original Message-----<br> <b><span style='font-weight:bold'>From:</span></b> Michael Kline [mailto:mkline1_at_comcast.net] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, March 21, 2003 1:40 PM<br>
<b><span style='font-weight:bold'>To:</span></b> Multiple recipients of list ORACLE-L<br>
<b><span style='font-weight:bold'>Subject:</span></b> Script to check for errors</span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;</span></font></p>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>Anyone have a &quot;simple&quot; script to scan an alert</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>log for errors and email a report if found?</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>Customer wants something to run &quot;often&quot;, but only</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>email when an error is found. I've got something</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>that does a bit of that and runs twice a day, but</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>always sends out.</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Courier New"><span style='font-size:12.0pt;font-family:"Courier New"'>Thanks.</span></font></p>

</div>

<div>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;</span></font></p> Received on Fri Mar 21 2003 - 15:34:54 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US