Nginx 서비스 가 정상적으로 작 동 하 는 지 확인 하기 (자세 한 설명)

안녕하세요? 오늘 셸 스 크 립 트 의 인 스 턴 스 를 가 져 옵 니 다.
수요: Nginx 서비스 가 정상적으로 작 동 하 는 지 확인 하고 실행 되 지 않 으 면 Nginx 서버 를 시작 합 니 다. Nginx 를 시작 하 는 데 실패 하면 메 일 로 경고 하 는 방식 으로 알려 줍 니 다.
분석
1: Nginx 서비스 가 다음 과 같이 실행 되 고 있 는 지 모니터링 합 니 다.
[root@yankerp ~]# netstat -anput | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      27228/nginx: master

이 명령 을 사용 하면 Nginx 가 실행 중인 것 을 똑똑히 볼 수 있 습 니 다.
2: Nginx 서버 를 시작 합 니 다. 우 리 는 그것 의 절대 경 로 를 통 해 Nginx 를 시작 할 수 있 습 니 다. 내 Nginx 설치 경 로 는: / usr / local / nginx 중 / sbin / 아래 가 Nginx 의 시작 항목 입 니 다.
/usr/local/nginx/sbin/nginx 

3: 시작 에 실패 하면 메 일 로 신고 하 는 방식 으로 알려 줍 니 다.
어떻게 Nginx 시작 실 패 를 판단 할 수 있 습 니까? 우 리 는 특수 한 상태 변 수 를 사용 할 수 있 습 니 다 $? 만약 / usr / local / nginx / sbin / nginx 이 명령 이 실 행 된 후 시작 에 실패 하면 $?0 이 아 닌 수 치 를 출력 하 는 데 실 패 했 습 니 다. 그러면 메 일 신고 방식 에 대해 서 는 sendemail 을 사 용 했 습 니 다.
 
2. 대본 작성
시작 설명: \ #! /빈 / bash 한 마디 는 이 스 크 립 트 의 내용 이 bash 해상도 기 를 통 해 실 행 된 것 을 의미 합 니 다.
스 크 립 트 작성 규범 입력 시간 - 작성 자의 정보 - 이메일 주소 및 버 전 등.다음 과 같다.
#!/bin/bash
#Date: 17:17 2018-03-04
#Author: yankai
#Email: [email protected]
#Function: Nginx monitoring
#Version: 3.1

2) 정의 변수
. /etc/init.d/functions   #     ,     
RED_COLOR='\E[1;31m'	#    (    )     
RES='\E[0m'				#  
NGX=`netstat -anput | grep nginx | wc -l`   #    Nginx         wc      
DA=`date +%Y-%m-%d`   #            

3) 정의 함수
다음은 첫 번 째 함 수 를 쓰기 시작 합 니 다. 우선 이 컴퓨터 의 URL 을 가 져 와 서 성공 할 수 있 는 지 확인 하 겠 습 니 다.http://localhost
function Nginx_URL(){   #       URL  
wget --spider -q -o /dev/null --tries=1 -T 5 http://localhost  #     ---/dev/null    wget     
if [ "$?" -ne 0 ]	#    wget     url   0       
   then  #  
     action "Nginx pages cannot be obtained_$DA" /bin/false >> /var/log/nginx_url_error.log
     #    NginxURL    ,      DA       /var/log/nginx_url_error.log   
fi   #  fi  if  
}

질문 Nginx 가 다운 될 수 있 음 을 의미 합 니 다. Nginx 가 실행 중인 지 확인 하 는 함 수 를 계속 쓰 겠 습 니 다.
function main(){  #     
        Nginx_URL  #  NGinxurl     nginx   url        
        Nginx_server   #    nginx      nginx         
}
main    #    main  
 
function Nginx_server(){	#    Nginx  
if [ "$NGX" -ne 0 ]		#$NGX            0  0      
   then	#  
     echo -en "${RED_COLOR} Nginx is running!
${RES}" # Nginx is running ; else # NGINX /usr/local/nginx/sbin/nginx fi if [ "$?" -ne 0 ];then : sendemail /usr/local/bin/sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "Nginx alarm" -o message-content-type=html -o message-charset-utf8 -xu yankerpcs -xp 123456yk -m "Nginx has serious downtime" &>/dev/null fi }

마지막 으로 우 리 는 두 함수 가 동시에 Nginx 의 상태 상황 을 검 측 하 는 것 을 정 의 했 습 니 다. 마지막 으로 우 리 는 총 함 수 를 정의 하여 상기 함 수 를 호출 하여 마지막 테스트 를 해 야 합 니 다.
function main(){  #     
        Nginx_URL  #  NGinxurl     nginx   url        
        Nginx_server   #    nginx      nginx         
}
main    #    main  。

3. 끝:
위의 몇 가지 조작 을 통 해 우 리 는 Nginx 의 각종 판단 을 통 해 Nginx 의 운행 상황 을 확정 하 는 동시에 우 리 는 메 일 경보 체 제 를 설정 하여 운영 자 에 게 경보 메 시 지 를 보 냈 다.그럼 마지막 스 크 립 트 는 다음 과 같 습 니 다.
#!/bin/bash
#Date: 17:17 2018-03-04
#Author: yankai
#Email: [email protected]
#Function: Nginx monitoring
#Version: 3.1
. /etc/init.d/functions
RED_COLOR='\E[1;31m'
RES='\E[0m' 
NGX=`netstat -anput | grep nginx | wc -l`
DA=`date +%Y-%m-%d`
 
function Nginx_URL(){
wget --spider -q -o /dev/null --tries=1 -T 5 http://localhost
if [ "$?" -ne 0 ]
   then
     action "Nginx pages cannot be obtained_$DA" /bin/false >> /var/log/nginx_url_error.log
fi
}
 
function Nginx_server(){
if [ "$NGX" -ne 0 ]
   then
     echo -en "${RED_COLOR} Nginx is running!
${RES}" else /usr/local/nginx/sbin/nginx fi if [ "$?" -ne 0 ];then /usr/local/bin/sendEmail -f [email protected] -t [email protected] -s smtp.163.com -u "Nginx alarm" -o message-content-type=html -o message-charset-utf8 -xu yankerpcs -xp 123456yk -m "Nginx has serious downtime" &>/dev/null fi } function main(){ Nginx_URL Nginx_server } main

 
글 은 다음 과 같이 전 재 됩 니 다:https://blog.csdn.net/qq_39591494/article/details/79437696

좋은 웹페이지 즐겨찾기