Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Script to check for errors
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 sopaging 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;}
{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;}
</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'> </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'> </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'> </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 "$(date +%y-%m-%d_%H:%M)
-------- BOK ----------------- $$" >> $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'> 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'> alert_log="/prod/dump/$sub/alert_$i.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'> if [ -f $alert_log ]; then #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'> line_file="/prod/dump/$sub/ora_line"</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'> 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'> echo 0 > $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'> 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'> 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'> 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'> if [ $new_line -lt $last_line ]; then #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'> 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'> 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'> </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'> 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'> echo "$(date +%y-%m-%d_%H:%M) NEW ORA Messages Found" >> $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'> (echo "From: chk_alerts.ksh"</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 "Subject: ORA messages found for $i \n"</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'> 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 #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'> 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'> echo "$(date +%y-%m-%d_%H:%M) Nobody is at work so paging also" >> $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'> 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'> 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'> 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'> echo $new_line > $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'> 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'> echo "$(date +%y-%m-%d_%H:%M) NO alert_log found to scan" >> $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'> 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'> </span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size: 10.0pt;font-family:Arial;color:navy'> </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'> </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 "simple" 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'> </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 "often", 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'> </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'> </span></font></p> Received on Fri Mar 21 2003 - 15:34:54 CST
![]() |
![]() |