웹서버 상태 체크 후 자동 재시작 쉘 스크립트
사용하는 가상서버의 문제일까? 간혹 nginx 웹서버가 다운되어 블로그 접속이 불가능한 경우가 생긴다. 근데 이런 일은 꼭 새벽에 발생한다. 오늘도 어김없이 새벽에 그런 일이 발생했지만 깊은 잠에 빠져있던 때라 아침에 일어나서야 확인하고 조치할 수 있었다. nginx 만 재시작하면 되는 간단한 일이다. 그래서 서버 상태 체크 후 자동으로 서버저를 재시작하는 스크립트를 만들어 봤다.
#!/bin/bash
STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://chicpro.dev)
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