웹서버 상태 체크 후 자동 재시작 쉘 스크립트

사용하는 가상서버의 문제일까? 간혹 nginx 웹서버가 다운되어 블로그 접속이 불가능한 경우가 생긴다. 근데 이런 일은 꼭 새벽에 발생한다. 오늘도 어김없이 새벽에 그런 일이 발생했지만 깊은 잠에 빠져있던 때라 아침에 일어나서야 확인하고 조치할 수 있었다. nginx 만 재시작하면 되는 간단한 일이다. 그래서 서버 상태 체크 후 자동으로 서버저를 재시작하는 스크립트를 만들어 봤다.

#!/bin/bash
STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://ncube.net)

if [ $STATUS -eq 502 ]; then
  /etc/init.d/php7.2-fpm restart
elif [ $STATUS -ne 200 ]; then
  /etc/init.d/nginx restart
fi

응답코드가 200 이 아니면 nginx 를 재시작하고 502 일 때는 php-fpm 을 재시작 하도록 했다. cron 에 등록하여 5분 마다 서버 상태를 체크하도록 했다.

*/5 * * * * root bash /root/serverCheck.sh > /dev/null 2>&1

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.