Я написал сценарий оболочки, который читает журналы обновлений и отправляет уведомление по электронной почте, когда OOM использует цикл do while.
Я могу получать уведомление по электронной почте об ошибках OOM, но каждый раз, когда для отправляемого письма генерируется дублирующий PID, который создает огромное «нет». дубликатов pids, пока я работаю над этим конкретным процессом / сервером администрирования (weblogic). PFB мой сценарий, есть ли способ, которым я могу избежать дублирования PID и получить только родительский PID при выполнении 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
ps wp PID|grep PID
Вы можете сделать это без grep - с помощью grep вы удалите заголовок.