首页 » Nginx » LINUX 监听NGINX

LINUX 监听NGINX

原文 http://blog.csdn.net/qq_32040767/article/details/78979140

2018-01-06 02:01:47阅读(525)

作为新手的我,自己shell挺薄弱的,脚本可能存在弊端,百度了好多LINUX判断NGINX状态的,结合了他们的经验,自己着手写了一个简单的,代码如下:

#! /bin/bash
#author:liud
#function:用于nginx监控
NGINXPATH=/usr/local/nginx/sbin/nginx
Url="http://www.yuxi.gov.cn/"
LOG_DIR=/data/monitor/
LOG_FILE=nginx_`date +%Y-%m-%d`.log
NowTime=`date +%Y-%m-%d_%H:%M:%S`
# 日志目录不存在的话则创建目录
[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
#这里采用pid的方式判断,也有其他方式可以判断
PidNum=`ps -C nginx -o pid|grep -v PID|wc -l`
# 如果去除掉PID的话还有1个或一个以上,说明nginx正在启动
if [ $PidNum -ge 1 ];then
		# 启动了但是不一定成功.利用wget访问看看是否成功了 Url取自己的服务url吧
		# nginx当前处于启动状态,但是url连不上,可以重启一下nginx; 这里做个循环的,比如说循环十次,wget成功了就跳出循环,十次都失败了,需要通知技术人员
		wget -T 10 -q --spider "$Url" >/dev/null 2>&1
		if [ $? -ne 0 ];then
			echo "${NowTime}, nginx is running, but fail to access the web site" >>$LOG_DIR/$LOG_FILE
			$NGINXPATH -s reload >/dev/null
		else
			# nginx正常,将检查日志追加方式记录到日志文件中
			echo "${NowTime}, nginx is running" >>$LOG_DIR/$LOG_FILE
		fi
else
		# nginx没有再运行,需要启动一下
        echo "${NowTime},nginx is not running. trying starting">>$LOG_DIR/$LOG_FILE
        $NGINXPATH >/dev/null
fi




最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹