René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback -
 

Using a shell script to analyze alert logs

The following ksh/awk script only gets the portion of the alert log file that was either written today or yesterday. It is provided by Allen Zobian. Thank you very much for sending it to me.
#!/bin/ksh

printf "Enter Destination File: "
read dest

files="/*/u??/oradata/$ORACLE_SID/oralogs -name alert_$ORACLE_SID.log"

for file in $(find $files)
do
DT=$(date)
awk '
BEGIN {Flg=0}
NR==1 {R=split(DATE,TMP," ")
       Day=TMP[1]
       Month=TMP[2]
       NoDay=TMP[3]}
{NoDayM=NoDay-1}
NF==5 && $2==Month && ($3==(NoDayM) || $3==(NoDayM)) {Flg=1}
Flg==1 {print $0}
' DATE="$DT" $file | awk '
/^ORA-/ || /cannot/ {print DATE print $0}
NF==5 {DATE=$0}
' >> $dest

done

exit 0