sun's longitude:242 09 23.91 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
2471 번 글의 답장글: Re: Re: 문의좀....
글쓴이: 김우연 글쓴날: 2006년 05월 06일 22:09:19 토(저녁) 조회: 1612
답변 감사합니다.
죄송하지만 리플 한번 더 달겠습니다.^^

앞전 스크립트에서 연결불가일때 메일발송하도록
 했는데, 유독 00:00 분에 실패라고 되더군요.
아마 ping 이 한번정도 끊어지거나 하는모양인데,
반드시 00:00 분 인것이 좀 이해가 안가는데요.
지금 크론으로 15분마다 체크하도록 되어 있거든요.
하루종일 괜찮다가,
23:15 -> 23:30 -> 23:45 -> 00:00 요기서 그러는거 보면 시스템
자체에서 도는 크론영향인거 같기도 하고...
체크대상 리눅스가 그런게 아니고 ping 을 보내는 리눅스
말입니다.
그럴 가능성도 있겠죠? ping 을 보내는 PC가 팬3, 512램인데 가정용
회선이라 그런가...

아래는 제가 끙끙대면서 좀 수정해 봤습니다.

#!/bin/sh
#
# -- ping test and logging

export LOGDATE="`date '+%Y%m%d'`"
LOGDIR="check_logs"

if [ ! -d ${LOGDIR} ] ; then
    mkdir ${LOGDIR}
fi

_checkping(){
    HOST=$1
    COUNT=$2
    EXTIME=`date '+%Y/%m/%d %H:%M:%S'`
    LOGFILE="${LOGDIR}/${LOGDATE}_${HOST}_checkping.log"
    if [ ! -e ${LOGFILE} ] ; then
        touch ${LOGFILE}
    fi
    RESULT=`ping -s 1 -c ${COUNT} -w ${COUNT} ${HOST}`
    echo -e "[${EXTIME}]\n${RESULT}\n\n" >> ${LOGFILE}
}

=> ping 과정을 그대로 저장하기 위해 grep 을 뺐는데요.
RESULT=`ping -s 1 -c ${COUNT} -w ${COUNT} ${HOST}`


RETRY=3 ## 실패시 재시도 회수
N=1 ## start idx
TARGET=192.168.1.1 ## host

while [ ${N} -le ${RETRY} ] ;
    do
    RES=`_checkping ${TARGET} 4 | grep error`

=> 위에서 로그에 저장하느라 grep 을 뺐더니만 여기에서 어떻게
비교해야 할지 모르겠습니다.ㅎㅎ


    if [ -z "${RES}" ] ; then
        echo "${N} : 정상"; break;
    else
        echo "${N} : 에러"
        #./sendmail.sh
    fi
    N=`expr ${N} + 1`
done

exit 0

미흡한 부분좀 잡아 주심 고맙겠습니다.
에휴... 업무하랴 이거하랴.. 상사들PC 봐주러 다니랴...
모른다고 하면 자기한테 도전하냐고...컥^^

짜증연속이네요.ㅎㅎ



[산이]님이 남기신 글:

>
>[김우연]님이 남기신 글:
>
>>수고하십니다.

>>책 잘 보고 있습니다. (좀 보다가 옆구리(제본)가
 터졌습니다.)
>>사무실에서 원격에 있는 리눅스 PC의 접속상태를 체크하고자
이곳의 게시판 검색을 통해 아래와 같이 스크립트를 크론으로
넣었습니다.
>>
>>#!/bin/sh
>>
>>ping_test() {
>>        result=`ping -s 1 -c 4 -w 4 xxx.xxx.xxx.xxx 2>/dev/null | grep "4
packets transmitted, 4 received"`
>>        if [ X"$result" = "X" ] ; then
>>        echo "연결불가"
 ## 메일발송
>>        else
>>        echo "연결정상"

>>        fi
>>}
>>
>>ping_test
>>
>>exit 0
>>
>>
>>근데 어제 밤에 보니 4번 요청에 4번 응답이 없었던
모양이에요.
>>게시판 자료상으로는 -c 1 -w 1 로 되어 있어서 혹시나 해서
4번씩 하도록 했는데 4번이 모두 응답되지 않는 경우가 있는거
같아요.
>>리눅스는 정상인데 회선지연등의 이유가 의심은
되는데요.
>>
>>혹시, 4번을 날려서 2번이상만 응답되면 정상.. 뭐 이런식으로
할 수는 없을까요?
>>아니면, ping 시도후 grep "4 packets transmitted, 4 received"
이와 같이 안나오면 3회까지 재시도..
>>크론으로 20분간격으로 하고 있는데, 시도결과를 로그파일에
기록을 했으면 좋겠는데...
>>이런식으로 좀 유연하게 해보면 좋겠는데, 쉘스크립트가
깡맹이라.. 문의좀 드립니다.
>>
>>원격에 있는 리눅스는 사실 다른 사무실에 있는 건데
KT기업전용선 입니다.
>>사무실 인터넷 쓰고 이거저거 하는용도 입니다. 
>
>========================================
>
>앗 오랫만에 질문이 올라왔네요. ㅎㅎ
>
>------------------------------------
>#!/bin/sh
>#
># -- ping test and logging
>
>_ping()
>{
>  HOST=$1
>  COUNT=$2
>  ping -s 1 -c ${COUNT} -w ${COUNT} ${HOST} 2>/dev/null | grep error
>}
>
>RETRY=3 ## 실패시 재시도 회수
>N=1 ## start idx
>TARGET=xxx.xxx.xxx.xxx ## host
>
>DATE=`date '+%Y-%m-%d %H:%S'`
>
>while [ ${N} -le ${RETRY} ] ;
>do
>  R=`_ping ${TARGET} 4`
>  [ -z "${R}" ] && { R=OK; break; }
>  N=`expr ${N} + 1`
>done
>
>echo "${DATE} => ${R}" >> /var/log/ping-${TARGET}.log
>
>exit 0
>---------------------------------------------- 

========================================

 
이전글 : Re: 문의좀....
다음글 : Re: Re: Re: 문의좀....  
 from 124.62.249.254
JS(Redhands)Board 0.4 +@

Re: 문의좀.... Re: Re: Re: 문의좀....
인쇄용 


apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds