[이현철 ]님이
남기신 글:
>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션) :
>- 커널버전(옵션)
:
>- 데몬버전(예: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
-----------------------------------
이린식으로 두개의 시간을 비교해서 같지 않으면 메일을
보내는 알리리즘을 사용해 보세요.
|