서버 핑의 응답을 캡처하고 경고를 보내는 방법

서버 핑의 응답을 캡처하고 경고를 보내는 방법

다음 명령을 실행하고 있습니다.

ping ldap.corp.XXXXX.com

LDAP 서버가 시작됩니다:

Pinging ldapeu.corp.XXXXX.com [XX.XXX.XXX.XX] with 32 bytes of data:
Reply from XX.XXX.XXX.XX: bytes=32 time<1ms TTL=252

LDAP 서버가 다운되었습니다:

ping: ldap.corp.XXXXX.com: Name or service not known

LDAP 서버가 다운된 시기를 식별하기 위해 KSH 파일에 코드를 어떻게 구현합니까?

답변1

ping성공에 따라 다른 종료 코드를 반환합니다. 약간 다르게 동작할 수 있는 여러 가지 핑 구현이 있지만 다음에서 인용했습니다.맨페이지 중 하나

만약에평평한응답 패킷이 전혀 수신되지 않으며 코드 1로 종료됩니다. 패킷의 경우계산그리고마감 시간지정되어 있으며 다음보다 작습니다.계산패킷이 수신된 시간마감 시간도달하면 코드 1로 종료됩니다. 다른 오류에서는 코드 2로 종료됩니다. 그렇지 않으면 코드 0으로 종료됩니다. 이렇게 하면 종료 코드를 사용하여 호스트가 활성 상태인지 확인할 수 있습니다.

핑은 성공의 경우 0이 아닌 다른 값을 사용할 수 있으며, 실패의 경우 0이 아닌 다른 값을 사용할 수 있습니다. echo $?이를 실행한 후 확인할 수 있습니다.

fping예를 들어 모니터링을 위한 다른 ping 프로그램이 있습니다 .

따라서 간단한 작업을 수행할 수 있습니다.

if ping -c 2 ldapeu.corp.XXXXX.com ; then
    echo up
else
    echo down
fi

(비슷한 방법을 사용하여 if ping … >/dev/null 2>/dev/null; then모든 메시지 인쇄를 제거 할 수 있습니다 ping.)

답변2

종료 값을 사용하여 ping호스트가 시작되었는지 확인할 수 있습니다.

0 everything ok
1 no response or lost packages
2 other errors (unable to resolve is one of them)

예를 들면 다음과 같습니다.

ping -c 5 hostname || error_script.sh

error_script.sh문제가 발생한 경우에만 실행됩니다.

관련 정보