I have written a shell script that reads the updating logs and sends an email notification when there are OOM using do while loop.
I am able to get the email notification for OOM errors but every time a duplicate PID is getting generated for the email sent which is creating a huge no. of duplicate pids while I am grepping for that particular process/ Admin server (weblogic). PFB my script, is there any way I can avoid the duplicate PIDs and can get only parent PID while doing a grep.
#!/bin/sh # Script to read the updating log file and send mail for any errors : LogCheck.sh # SET VARIABLES logfile=BEA_HOME/SERVERS/Admin.log pattern="java.lang.OutOfMemoryError: Java heap space" #Read each line as it gets updating to the log file tail -fn0 $logfile | while read line ; do #check each line for our pattern echo "$line" | grep -i "$pattern" #Perform the below action if a line matches with our pattern if [ $? = 0 ]; then #Send an email echo "Found an error: $line" | mailx -s "please check the error" emailID fi done