리눅스 client에서 웹서버의 html 파일을 1초 단위로 loading 하는 스크립트이다.

web_access_test.sh 코드

#!/bin/bash

LOGFILE="/var/log/webtest-`date +%Y-%m-%d"_"%T`.log"
WEB1="https://mapoo.net/aa.html"
WEB2="https://mapoo.net/ab.html"

COUNTER=1
FAIL_COUNTER=0
while :
do
    echo "---------------- $COUNTER ----------------" | tee -a $LOGFILE
    let "COUNTER+=1" 
    HOST1=$(wget $WEB1 -t2 -T2 -o /dev/null -O /dev/stdout)
    HOST2=$(wget $WEB2 -t2 -T2 -o /dev/null -O /dev/stdout)
    if [ -n "$HOST1" ] && [ -n "$HOST2" ]; then 
        echo -e "\033[1;32m$HOST1\e[21\033[0m" | tee -a $LOGFILE
        echo -e "\033[1;32m$HOST2\e[21\033[0m" | tee -a $LOGFILE
    else
        echo -e "\033[1;31mFAILED WGET\e[21\033[0m" | tee -a $LOGFILE
        echo -e "\033[1;32m$HOST1\e[21\033[0m" | tee -a $LOGFILE
        echo -e "\033[1;32m$HOST2\e[21\033[0m" | tee -a $LOGFILE
        let "FAIL_COUNTER+=1" 
    fi
    if [ $FAIL_COUNTER = 0 ]; then
        echo "`date +%Y-%m-%d"_"%T"_"%Z` FAILED COUNT=$FAIL_COUNTER" | tee -a $LOGFILE
    elif (( FAIL_COUNTER >= 1 && FAIL_COUNTER <= 9 )); then
        echo -e "`date +%Y-%m-%d"_"%T"_"%Z`\033[1;33m FAILED COUNT=$FAIL_COUNTER\e[21\033[0m" | tee -a $LOGFILE
    elif [ $FAIL_COUNTER -ge 10 ]; then
        echo -e "`date +%Y-%m-%d"_"%T"_"%Z`\033[1;35m FAILED COUNT=$FAIL_COUNTER\e[21\033[0m" | tee -a $LOGFILE
    fi
    echo -e "---------------------------------------\n" | tee -a $LOGFILE
    sleep 1;
done
  • 실행시 마다 1씩 카운트를 올리며, loading 에 실패하면 fail 카운트를 올린다.
  • WEB1, 2 변수의 내용을 수정하면 fail count을 쉽게 올려볼 수 있다.
  • # fail -f /var/log/webtest-'date' 로 다른 쉘에서 동시에 로그를 확인할 수 있다.

아래와 같이 상단 카운트가 증가되며, wget에서 fail이 발생하면 FAILED COUNT를 증가 시킴

- 0 FAILED COUNT : White
- 1 ~ 9 FAILED COUNT : Yellow
- 10 ~ FAILED COUNT : Purple

shell script - test of web page loading

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다