Quote:
Originally Posted by Manish Jha
this could be easily achieved by writing a simple shell script which will read the current processing .. write messages to log file and if failure occurs it will send mail to any group list provided.
Regards,
Manish
I understand that I can write a shell script but what is the syntax to put the time and date in a file and be able to grep all lines below that particular time that I inserted when I am comparing what was there lets say 24 hours ago then pull only those lines. Also, I would like to know how to grep for those lines pulling only the errors generated and place them into a email?
This is the structure that I have:
#!/bin/sh
# Every 6 hours
# Get all lines from the arlog based on the last PREVIOUS_TIME date and time.
PREVIOUS_TIME='DATE AND TIME: `date`' in the arlog
NEW_TIME='TODAYS DATE AND TIME: `date` ' in the arlog
#LIST OF ERRORS THAT WILL BE SEARCHED.
ERRMSG='CHECKING FOR ERRORS IN ARLOG: ERROR 9999'
ERRMSG1='0403-031 The fork function failed. There is not enough memory available.'
ERRMSG2='Login failed.'
ERRMSG3='ftp: connect: Connection timed out.'
ERRMSG4='ftp: connect: Connection refused.'
ERRMSG5='endeavour: unknown host or invalid literal address.'
ERRMSG6='ftp: Unknown host diamprodf0'
ERRMSG7='ORA-06508: PL/SQL: could not find program unit being called.'
ERRMSG8='ORA-01034: ORACLE not available.'
ERRMSG9='ORA-27101: shared memory realm does not exist.'
ERRMSG10='ORA-01005: null password given; logon denied.'
ERRMSG11='SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL.'
ERRMSG12='ORA-04068: existing state of packages has been discarded.'
ERRMSG13='ORA-04063: package body "FININTER.HAP_CUSTOMERS_INTERFACE" has errors.'
ERRMSG14='ORA-06512: IN LINE ERROR.'
ERRMSG15='ORA-01005: null password given.'
grep 'DATE STAMP: $PREVIOUS_TIME ' arlog >> TEMP_ARLOG.log
if $NEW_TIME in the arlog NOT EQUAL $PREVIOUS_TIME in arlog
then
egrep "(${ERRMSG} | ${ERRMSG1} | ${ERRMSG2} |........) from arlog.
if NO ERRORS EXIST
then
put $NEW_TIME 'No Errors To Date and time" >> arlog
else
mailx -s '$ERRORS `date` to [FMT] with message describing error or errors.
grep 'LAST TIME TRANSMISSION:' $PREVIOUS_TIME >> arlog
fi
fi
Now how do I put the code into a structure that will generate what I want to do above?