LINUX 监听NGINX

作为新手的我,自己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




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值