리눅스 아파치 서버가 살아있는지 체크하는 쉘스크립트
ping 을 막아 놓은 경우에 확인해 볼 수 있는 방법중 하나이다.
서버를 체크해서 이전 상태와 다를 경우 이메일로 결과를 전송하도록 작성해보았다.
우선 웹서버에 robots.txt 파일을 하나 생성해주자.
User-agent: *
Disallow: /
이 파일이 다운로드 받아지는지 체크하면 된다.
# touch /usr/local/bin/server-check.sh
# chmod 700 /usr/local/bin/server-check.sh
# vi /usr/local/bin/server-check.sh
#!/bin/sh
CHECK_DOMAINS="
http://www.example.com
http://www1.example.com
http://www2.example.com
http://www3.example.com
"
CHECK_FILE="robots.txt"
SAVE_PATH="/root"
TO_EMAIL="webmaster@example.com"
for DOMAIN in $CHECK_DOMAINS
do
CHECK_URL="$DOMAIN/$CHECK_FILE"
SUBJECT="$CHECK_URL 서버체크 결과"
LAST_STATE="$SAVE_PATH/$(echo $DOMAIN | base64).state"
wget -O $SAVE_PATH/$CHECK_FILE $CHECK_URL
if [ -f $LAST_STATE ] ; then
LAST_LIFE=`cat $LAST_STATE`
else
LAST_LIFE="init"
fi
if [ -s /root/$CHECK_FILE ] ; then
CURR_LIFE="true"
else
CURR_LIFE="false"
fi
echo $CURR_LIFE > $LAST_STATE
echo "LAST_LIFE : $LAST_LIFE, CURR_LIFE : $CURR_LIFE"
if [ "$LAST_LIFE" != "$CURR_LIFE" ] ; then
echo "Server status : no same"
if [ "$CURR_LIFE" == "false" ] ; then
EMAIL_MSG="$CHECK_URL 웹서비스가 반응이 없습니다."
else
EMAIL_MSG="$CHECK_URL 웹서비스가 정상입니다."
fi
echo "$EMAIL_MSG" | /bin/mail -s "$SUBJECT" "$TO_EMAIL"
else
echo "Server status : same"
fi
done
위 코드를 응용해서 크론에 등록해서 체크를 하면 된다.
[root@conoha cron.d]# echo "*/5 * * * * root /usr/local/bin/server-check.sh" > /etc/cron.d/server-check
[root@conoha cron.d]# cat /etc/cron.d/server-check
*/5 * * * * root /usr/local/bin/server-check.sh
[root@conoha cron.d]# chmod 600 /etc/cron.d/server-check
'LINUX' 카테고리의 다른 글
리눅스 서버간 scp로 파일 복사하기 (0) | 2016.05.27 |
---|---|
CentOS 7.x 호스트네임 변경하기 (0) | 2016.05.27 |
아파치 IP 로 접속시 차단 방법 (2) | 2016.05.26 |
리눅스 아파치 VirtualHost 설정 방법 (0) | 2016.05.26 |
CentOS 7.x 아파치 mod_ruid2 설치 및 설정방법 (0) | 2016.05.26 |