检测Nginx服务是否正常运行(详解)_nginx是否正常,2024年最新理解透彻

大家好今天给大家带来shell脚本的一个实例(检测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启动失败,我们可以使用特殊的状态变量 ?  如果 / u s r / l o c a l / n g i n x / s b i n / n g i n x  这条命令运行之后如果启动失败那么它 ? 如果/usr/local/nginx/sbin/nginx 这条命令运行之后如果启动失败那么它 ? 如果/usr/local/nginx/sbin/nginx 这条命令运行之后如果启动失败那么它?就会输出非0的数值表示失败,那么至于邮件报警的方式这里我采用了sendemail

二、编写脚本

开头注释:#!/bin/bash一句话代表着此脚本中的内容是通过bash解析器来运行的

编写脚本的规范 输入时间–创建者的信息–联系邮箱地址–以及版本等等。如下:

#!/bin/bash
#Date: 17:17 2018-03-04
#Author: yankai
#Email: ywyankerp@163.com
#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 [ “KaTeX parse error: Expected 'EOF', got '#' at position 12: ?" -ne 0 ] #̲如果以上wget获取本地的ur…DA” /bin/false >> /var/log/nginx_url_error.log
#输出一条NginxURL检测失败,那么后面调用DA时间变量输出到/var/log/nginx_url_error.log日志中
fi #最后fi结束if语句
}

那么我们在这里想一个问题,那么如果wget获取不到本地的URL 意味着Nginx可能会宕机,那么我们继续写检测Nginx是否运行的函数

function main(){ #定义总函数
Nginx_URL #调用NGinxurl函数来测试nginx本地的url是否能够正常运行
Nginx_server #调用检测nginx函数 来测试nginx服务器是否正在运行
}
main #最后结束main函数

function Nginx_server(){ #定义检测Nginx函数
if [ "KaTeX parse error: Expected 'EOF', got '#' at position 15: NGX" -ne 0 ] #̲NGX这个变量的运行结果不等于0 非0代表正在运行
then #那么
echo -en “KaTeX parse error: Undefined control sequence: \n at position 30: …inx is running!\̲n̲{RES}” #就输出Nginx is running 信息;
else #否则启动NGINX
/usr/local/nginx/sbin/nginx
fi
if [ “$?” -ne 0 ];then 注意:在这里需要提前安装好sendemail邮件报警 可以参考我之前的文章这里不在演示
/usr/local/bin/sendEmail -f yankerpcs@163.com -t ywyankerp@163.com -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函数。

三、结尾:

经过了上面的几种操作,我们已经知道了Nginx的各种判断来确定Nginx的运行状况,同时我们也设置了邮件报警的机制来发送报警消息给运维人员。那么最后的脚本如下:

#!/bin/bash

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

b (备注软件测试)**
[外链图片转存中…(img-nRIewEIi-1713039305032)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 2022前端面试是一个非常重要的考试,对于想要从事前端开发工作的人来说,非常关键。在面试前,我们需要充分准备自己的面试内容和知识点,以及回答问题的技巧和方法。 首先,面试前需要熟悉相关公司的业务和现在使用的前端框架或技术栈,这样可以更好地准备自己的面试内容和回答问题。另外,需要重点掌握HTML、CSS和JavaScript等基本知识,以及常用的UI框架和库,如jQuery、Bootstrap、Vue.js、React等。此外,还需要关注最近的前端技术和趋势,如WebGL、Node.js、TypeScript等。 在面试中,需要注意的是回答问题的技巧和方法。首先,需要仔细听取面试官的问题,理解问题的核心和重点,尽可能地表达自己的回答思路和理解深度。其次,需要尽量举一些实际的例子或场景来说明自己的观点和经验,这样可以更加生动地表达自己的想法。最后,需要注意回答问题的语言表达和态度,尽可能地表现自己的专业水平和态度认真。 总体而言,2022前端面试csdn是一个很重要的考试,需要提前充分准备自己的知识和技能,在面试过程中表现得专业、认真。这样才能更好地展现自己的实力,得到期望的前端开发工作。 ### 回答2: 2022前端面试csdn是一项非常重要的任务,因为前端开发是目前互联网行业中最热门的职位之一。要成功通过前端面试,需要具备扎实的前端基础知识和开发经验,同时也需要具备一定的面试技巧和实际表现能力。 在准备前端面试时,需要学习并熟悉HTML、CSS和JavaScript等前端基础知识,理解网页布局、响应式设计、DOM操作等常见技术,并熟练掌握常用的前端框架和库,如Angular、React、Vue等,还需了解一些基本的设计模式和算法,如代理模式和二分查找等。 在面试中,需要展现自己的技术实力和团队合作能力,对于面试官的提问,要结合自身经验和知识深入分析,并提供解决方案,同时也要注意沟通和表达技巧。进入面试后,要表现得自信且谦虚,积极主动地回答问题并展示自己的优点和特长,同时也要主动询问面试环节的问题与需求,以便更好地为公司做出贡献。 综上所述,要通过2022前端面试csdn,需要全方位的准备和积极的心态,提前准备,熟练掌握前端知识与技能,参加面试前做好应对策略和交流技巧的准备,这样才能成功地展示自己的实力和获得自己心仪的工作机会。 ### 回答3: 2022前端面试已经获得广泛关注,吸引了大量技术人员的参与。作为一名前端开发者,在准备面试时,有几点要特别注意。 首先是技术知识的深度和广度。前端开发者需要了解HTML、CSS和JavaScript的基础知识,同时掌握流行的前端框架和库,如Angular、React、Vue等。此外,对于跨平台开发、性能优化、SEO等方面也需要有相应的了解。 其次是实战经验。虽说前端开发是一门技术学科,但对于面试官来说,实际项目和团队协作经验也是重要考察因素。要想在选手中脱颖而出,需要在自己的技术博客或Github上分享项目经验,展示自己优秀的代码实现。 最后是沟通能力和团队协作能力。前端开发不仅仅是技术能力,对于工作中的沟通和协作同样重要。面试时,面试官可能会问到你的与其他团队成员沟通和协作的经验,因此在举例时,展示自己的团队合作精神和领导力也很重要。 总之,在准备2022前端面试时,需要注重技术深度和广度、实战经验以及沟通和协作能力等方面的提升。同时,修改简历并投递简历时一定要认真,格式要清晰易读,表达要准确简洁。祝大家面试顺利,取得好成绩!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值