본문으로 바로가기

웹 페이지 상태 체크




"web_check.sh"


#!/bin/bash

LINE_="========================="

E="echo"

declare -a ARRAY_OK

declare -a ARRAY_FAIL

declare -a ARRAY_NOT

 

[ $1 -ge 0 2>/dev/null ]

 

if [ $# -eq 1 -a -e "$1" ]

then

 LIST_FILE=`cat $1`

 

for LIST in ${LIST_FILE}

 do

  CHECK_HTTP_CODE=`curl -I -4 -m 1 ${LIST} 2>/dev/null | grep "^HTTP" | awk '{print $2}'`

  VERIFY_CEHCK=`expr ${CHECK_HTTP_CODE} + 0 2>/dev/null`

 

  if [ "$VERIFY_CEHCK" -ge 1 ] 

  then

   if [ "$CHECK_HTTP_CODE" -eq 200 -o "$CHECK_HTTP_CODE" -le 308 ] 

   then

     ARRAY_OK=("${ARRAY_OK[@]}" "`$E "HTTP Code ${CHECK_HTTP_CODE} OK - ${LIST}"`")

   else

     ARRAY_FAIL=("${ARRAY_FAIL[@]}" "`$E "HTTP Code ${CHECK_HTTP_CODE} Fail - ${LIST}"`")

   fi

  else

    ARRAY_NOT=("${ARRAY_NOT[@]}" "`$E "HTTP Not Listen - ${LIST}"`")

  fi

 done

 

 $E;$E "$LINE_ HTTP OK $LINE_"

 LOOP_COUNT=0

 LOOP_LIMIT=${#ARRAY_OK[@]}

 while [ "${LOOP_COUNT}" -le "${LOOP_LIMIT}" ]

 do

  $E "${ARRAY_OK[${LOOP_COUNT}]}"

  LOOP_COUNT=`$E "${LOOP_COUNT} + 1" | bc`

 done

 

 $E "$LINE_ HTTP Fail $LINE_"

 LOOP_COUNT=0

 LOOP_LIMIT=${#ARRAY_FAIL[@]}

 while [ "${LOOP_COUNT}" -le "${LOOP_LIMIT}" ]

 do

  $E "${ARRAY_FAIL[${LOOP_COUNT}]}"

  LOOP_COUNT=`$E "${LOOP_COUNT} + 1" | bc`

 done

 

 $E "$LINE_ HTTP Not Listen $LINE_"

 LOOP_COUNT=0

 LOOP_LIMIT=${#ARRAY_NOT[@]}

 while [ "${LOOP_COUNT}" -le "${LOOP_LIMIT}" ]

 do

  $E "${ARRAY_NOT[${LOOP_COUNT}]}"

  LOOP_COUNT=`$E "${LOOP_COUNT} + 1" | bc`

 done

 

else 

 $E;$E "ex) - $0 list";$E

 exit 0

fi


#동일한 경로에 'list' 파일 생성하여 아래와 같이 내용 추가


[root@lxstitch]# vi list

### 웹 서버 IP, 또는 도메인 주소 입력 하면 됨 ###


www.naver.com    #네이버

lxstitch.tistory.com    #티스토리

192.168.0.1         #웹서버 1 

192.168.0.2         #웹서버 2