[산이]님이 남기신 글:
>
>[이현철 ]님이
남기신 글:
>
>>-----------------------------------------
>>답변자가 기본적으로 참고할 내용입니다.
>>- 배포판(옵션) :
>>- 커널버전(옵션)
:
>>- 데몬버전(예:apache
1.3.27) :
>>- 데몬설치유형(RPM/컴파일/기타)
:
>>-----------------------------------------
>>산이님의 조언을 얻고자 합니다.
>>
>>역시 쉘 스크립트는 열심히 많이 짜봐야 하는데,
>>하루 종일 고심해봐도 잘 답이 안 나오네요.
>>머리가 굳어 버렸는지...
>>
>>제가 할려고 하는것은
>>
>>로그 파일중에 마지막 라인
>>
>>tail -n 1 /var/log/messages 이부분을 정기적으로 감시해서
>>
>>nfs error 라는 메세지가 나오면 메일을 보
는 쉘 스크립트를
>>
>>짤려고 합니다.
>>
>>tail -n 1 /var/log/messages | /bin/grep
nfs error 이런 형태로 해서 cron
>>
>>으로 5분 간격으로 감시를 해봤습니다.
>>
>>그랬더니,5분간격으로 메일이 계속오는 바람에(me
sages 로그에 별로 로그가 남지않아서 nfs
rror메세지가 가장 최신로그 형태로 남아있었서
분간격으로 메일이 오고 있습니다)
>>
>>어떻게 하면 5분간격으로 로그를 감시해서 nfs
rror 가 표시되면서,메일을 보내는 형태로 하지
하루에 한번만 메일을 보내는 행태로쉘스크립트를
고 싶은데요..
>>
>>예를 들어서 아래와 같은 로그가 messages에
표시되면 오늘 날짜와 같을 경우에만 하루에 한번만
메일을 보낼려고 합니다.
>>
>>Oct 23 22:51:52 king kernel: nfs error
>>
>>
>>
>>하루종일 해봤는데 하루에 한번만 날짜가 같을 경우
보내는 방법이 쉽지가 않네요...
>>
>>
>>
>>힌트를 조금만 주시기를...
>
>========================================
>
>------------------------------
>#!/bin/sh
>
>OLDFILE=/tmp/nfserror.time
>
>R=`tail -n 1 /var/log/messages 2>/dev/null | /bin/grep 'nfs error'`
>
>if [ $? = 0 ] ; then
> NEWTIME=`echo "$R" | awk '{print $1,$2,$3}'` ## month, day,
hour:minute:second
> OLDTIME=`cat ${OLDFILE} 2>/dev/null`
>
> if [ "$NEWTIME" != "$OLDTIME" ] ; then
> echo "$R" | mail -s "[NFS error]" 메일주소
> echo "$NEWTIME" > $OLDFILE
> fi
>fi
>
>exit 0
>-----------------------------------
>
>이린식으로 두개의 시간을 비교해서 같지 않으면 메일을
보내는 알리리즘을 사용해 보세요.
========================================
|