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