Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

설명

특정 DNS(:12)서버의 상태와 응답시간을 체크할 수 있는 간단한 프로그램입니다. 이 정보는 RRD(:12)등을 위한 측정데이터로 사용할 수 있습니다.
# ./dnscheck.sh www.joinc.co.kr 218.234.19.87

코드

#!/bin/sh
host=$1
server=$2

# 현재시간을 nano초 단위로 얻는다.
time1=`date +%s.%N`
result=`nslookup -timeout=5 -retry=0 $host $server`

# 출력결과물에 timed out 문자열이 있는지 확인한다.
echo $result | grep "timed out" > /dev/null
status=$?

# 현재 시간을 nano초 단위로 얻는다.
time2=`date +%s.%N`

# bc(:12)를 이용해서 걸린시간을 계산한다.
diff=`echo "$time2 - $time1" | bc`

# 만약 timed out 이라면 FAILURE를
# 그렇지 않다면 OK를 출력한다.
# 성공했을경우 reply time도 출력한다.
if [ $status -eq 0 ]
then
        echo "DNS LOOKUP FAILURE|status=0"
else
        echo "DNS LOOKUP OK|time=$diff status=1"
fi