리눅스 서버 포트 체크 자동 재시작 쉘스크립트
리눅스 서버에서 테몬 살아 있는지 포트체크 후 자동재시작하는 bash 쉘스크립트
간단하게 스케줄러에 주기적으로 실행을 시켜서 서버가 죽었으면 자동으로 재시작 시켜주는 간단한 쉘스크립트 입니다.
이런것보다는 왜? 서버가 죽었는지 원인을 확인하는것이 우선 이겠으나 어떤 상황에선 우선 살려놓고 판단을 하는것이 좋기 때문에 이런것들이 간혹 필요합니다.
bash 쉘에서 실행되는 스크립트 입니다.
리눅스에서 포트체크 방법
재시작할때 간단하게 로그를 남겨 후에 특정 시간에 일어나는 현상인지 알 수 있도록 되어 있습니다. 또는 필요 하시다면 SMS나 텔레그램 같은 프로그램을 외부실행 하게 하여 자신의 스마트폰으로 연동까지 시켜두면 좋을것 같습니다.
텔레그램을 통한 메시지 보내는 CURL은 여기를 참고하세요.
실제 사용된 쉘스크립트
[root@pabburi /root] vim /root/port_listen_check_restart.sh#!/bin/bash
# 1180 포트가 떠 있지 않으면 무조건 server.sh를 재시작 한다.[root@pabburi /root] /root/port_listen_check_restart.sh
if ! netstat -antp | grep "0.0.0.0:1180" >/dev/null 2>&1; then
DATE=`date +%Y-%m-%d_%H:%M:%S`
HOSTNAME=`hostname -s`
echo "${HOSTNAME} 서버 $DATE stop -> start" >> /root/log_server_restart.txt
/usr/local/server.sh restart
fi
[root@pabburi /root] chmod 0755 /root/port_listen_check_restart.sh
로그파일 확인하기
[root@pabburi /root] [root@pabburi /root] tail /root/log_server_restart.txt
pabburi 서버 2022-02-13_12:57:44 stop -> start
pabburi 서버 2022-02-13_13:16:34 stop -> start
위 쉘스크립트를 cron 스케줄러에 넣는 방법은 여기서 다루지 않습니다.
태크: 서버자동재시작프로그램, 서버포트체크재실행, 죽은서버자동재시작