2017-02-28 11 views
0

저는 코더가 아닙니다. 프로그램을 실행하려면 loganalyzer (작은 쉘 스크립트)를 실행하고 명령을 실행합니다 (kill 프로세스를 시작하고 새 프로세스를 시작하십시오.) 그런 다음 알림을 보내십시오. 무엇을 arround의로그 파일을 분석하면 오류가 발생합니다. exec 명령과 메일로 경고합니다.

: /var/log/mylogfile.log 에서 로그 파일이 programm에이 물건의 모든 종류를 쓰고, 내가 패턴을 검색 할 Log Analyzer에 원하는이, 수 말 : "오류 33 파일을 찾을 수 없습니다"또는 "전제 변경됨"또는 "상태 변경됨".

나는 매분 (crontab) 패턴 중 하나가 예를 들어 1 분 안에 4 번 일치하면 로그 파일을 확인하고 명령을 실행하고 우편으로 알려준다. workarround 나는 스크립트가 모든 실행중인 프로세스를 확인하고 모두 죽이기를 원하므로 pkill -x [nameofprogramm]을 사용하는 것이 좋습니다.

그래서 tail -fn 0을 사용하고 grep을 사용하는 것이 좋습니다. 패턴,하지만 어떻게 든 내가 오류가 발생하면 x 시간을 확인하는 방법을 알아낼 수 없습니다 다음 경고.

이제 매치가 이메일을받을 때마다 얻습니다.

전문가의 제안이 있습니까?

은 이미 그것을 위해 MONIT을 사용하려고하지만, 어떤 이유로 MONIT 사전에 그런 복잡한 일에

감사를 처리 내가 알고하지 않습니다

답변

0

관련하여 해당 쉬운 일이 아니다 당신은 당신의 로그 파일에 어떤 종류의 회전이 있긴하지만, 그렇지 않다면, 나는 당신이 사물의 발생을 계산할 계획이라면 정말로 그것에 대해 생각해야한다고 생각한다. :) awk if look on should be if 당신은 로그에서 열심히 조사 할게요. 당신의 수가 약

가 여기에 파일에서 "ERROR"를 포함하는 라인의 수를 계산하는 간단한 예입니다

#!/bin/ksh 
grep_occurence() { 
     pattern=$1 
     file=$2 
     limit=$3 
     nb_errors=$(grep ${pattern} ${file} | wc -l) 
     if [ ! -f ${file} ] 
     then 
       echo "[ERROR] The file ${file} does not exists" 
       exit 1 
     fi 


     if [ ${nb_errors} -gt ${limit} ] 
     then 
       echo "There were ${nb_errors} occurence of ${pattern} in ${file}" 
       return ${nb_errors} 

     fi 
} 

logfile=/var/log/mylogfile.log 
#grep_occurence "PATTERN" "LOGFILE" "LIMIT" 
grep_occurence "ERROR" "${logfile}" 5 
0

백 슬래시, 나는 귀하의 게시물 댓글을 달았을 것이다 그러나 나는이 없습니다 충분한 명성 이렇게하는 ... 그래서 난 또 다른 "대답"

내가 것 당신의 로그의 따라 생각 ...

을 만들고있어 이러한 로그가 applicatives 경우 (제이 보스, 웹 로직, ...) 나는 꼬리표를 사용하는 것을 정말로 추천하지 않는다. 예를 들어 특정 Java 오류로 인해 로그가 한 번에 200 줄 씩 채워지고 꼬리 -20n을 만들면 ... 많은 정보를 놓치게됩니다 ...

사용 가능한 타임 스탬프가 있습니까? 로그에? 예인 경우 로그를 구문 분석하고 예를 들어 마지막 분만 저장할 수 있습니다.