Избегайте повторяющихся пидов при поиске шаблона

Я написал сценарий оболочки, который читает журналы обновлений и отправляет уведомление по электронной почте, когда 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
4
задан 13 July 2013 в 10:53

2 ответа

Вы можете использовать uniq или sort -u :

echo "$line" | grep -i "$pattern" | uniq
0
ответ дан 13 July 2013 в 10:53
ps wp PID|grep PID

Вы можете сделать это без grep - с помощью grep вы удалите заголовок.

0
ответ дан 13 July 2013 в 10:53

Другие вопросы по тегам:

Похожие вопросы: