shell习题第13题:监控nginx进程
2024-09-05 14:35:47
【题目要求】
在服务器上写一个脚本,要求如下
1. 每隔10秒去检查而一次服务器上的nginx进程数,如果>=500的时候,就需要自动重启一下nginx服务,并检测启动是否成功
2. 如没有正常启动还要再一次启动,最大不成功数超过5次则需要立即发邮件通知管理员,并且之后不需要再检测
3. 如果启动成功之后,1分钟后再次检测nginx进程,若正常则重复之前的操作(每隔10秒检查一次),若还是>=500,那放弃重启并需要发邮件给管理员,然后自动退出脚本。假设发邮件脚本为mail.py
【核心要点】
pgrep -l nginx 或者 ps -C nginx --no-heading检查进程
如何计数5次
【脚本】
#!/bin/bash
check_service()
{
c=
for i in `seq `
do
/usr/local/nginx/sbin/nginx -s restart > /tmp/nginx.err
if [ ! $? -eq ]; then
c=$[$c+]
else
break
fi
done if [ $c -eq ]; then
python mail.py .qq.com "nginx进程数大于500,重启失败" "head -l /tmp/nginx.err"
exit
fi
} while :
do
n=`ps -C nginx --no-heading | wc -l`
if [ $n -ge ]; then
check_service
sleep
n_new=`ps -C nginx --no-heading | wc -l`
if [ $n_new -ge ]; then
python mail.py .qq.com "nginx重启1分钟后进程数仍然大于500,重启失败" "清登陆服务器检查问题吧"
exit
fi
fi
sleep
done
最新文章
- Spring中集合类型属性注入
- ArrayList vs LinkedList vs Vector
- nyoj 91 阶乘之和(贪心)
- Maven 3.3.3 Win10环境下的使用实例(上)
- dom4j创建xml
- android 解释dp,px,pt,sp单位
- iOS开发60分钟入门
- org.jawin.COMException: 8000ffff: Invalid ptr null flag(原址:http://osdir.com/ml/windows.devel.jawin/2006-01/msg00013.html)
- 一个开源Delphi分类组件推荐网页
- Django 学习笔记(三)模板导入
- Maven快速使用阿里云的代理maven仓库
- HWM、PCTFREE、PCTUSED
- c/c++ 动态库与静态库的制作和使用
- 2019 蓝桥杯省赛 A 组模拟赛(一)-忽明忽暗
- codeforces 1077F2. Pictures with Kittens (hard version)单调队列+dp
- JOI 2018 Final 题解
- c#XML转换成实体
- 【C++ Primer 第10章】 1.概述(算法总结)
- Mac 下的 C++ 开发环境
- Git冲突:commit your changes or stash them before you can merge.
热门文章
- [题解] [BZOJ4152] The Captain
- Infralution.Localization.Wpf
- django models 关系
- 001-jdk-数据结构-总览
- VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群
- [Scikit-learn] 1.1 Generalized Linear Models - Neural network models
- LeetCode_9. Palindrome Number
- gitlab配置webhook报错解决
- 使用 tuned/tuned-adm工具动态调优系统CPU性能模式
- 【VS开发】MFC中调用C函数模块的解决方案