Linux 生產環境實時監控Nginx腳本

#!/bin/bash
# name : Alenx
# start_user : admin

V_LOG="/opt/logs/listen_nginx.log"
V_NGINX="systemctl restart nginx.service"
V_NGINX_PORT="0.0.0.0:80 0.0.0.0:443"

logs=$(ls /opt/logs/ | grep listen_nginx.log | wc -l)
if [ $logs -lt 0 ]; then
    touch /opt/logs/listen_nginx.log
    continue
fi


function restart_nginx(){
    echo "*************$(date)***************" >> $V_LOG
    $V_NGINX  >> $V_LOG
    echo "-----------------------------------" >> $V_LOG
    echo "$(ps aux | grep nginx | grep -v listen_nginx.sh | grep -v listen_nginx.log | grep -v grep)" >> $V_LOG
    echo "-----------------------------------" >> $V_LOG
    sleep 3
    echo "$(netstat -lnpt | grep nginx)" >> $V_LOG
    echo "-----------------------------------" >> $V_LOG
}

while :
do
    V_NGINX_NUM=$(ps aux | grep nginx | grep -v listen_nginx.sh | grep -v listen_nginx.log | grep -v grep | wc -l)

    if [ $V_NGINX_NUM -lt 2 ]; then
        restart_nginx
        continue
    fi

    for PORT in $V_NGINX_PORT
    do
        V_PORT_NUM=$(netstat -lnpt | grep 80 | wc -l)
        if [ $V_PORT_NUM -lt 0 ]; then
            restart_nginx
            continue
        fi
     done
    sleep 10
done

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章