【题目要求】

在服务器上写一个脚本,要求如下

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

最新文章

  1. Spring中集合类型属性注入
  2. ArrayList vs LinkedList vs Vector
  3. nyoj 91 阶乘之和(贪心)
  4. Maven 3.3.3 Win10环境下的使用实例(上)
  5. dom4j创建xml
  6. android 解释dp,px,pt,sp单位
  7. iOS开发60分钟入门
  8. org.jawin.COMException: 8000ffff: Invalid ptr null flag(原址:http://osdir.com/ml/windows.devel.jawin/2006-01/msg00013.html)
  9. 一个开源Delphi分类组件推荐网页
  10. Django 学习笔记(三)模板导入
  11. Maven快速使用阿里云的代理maven仓库
  12. HWM、PCTFREE、PCTUSED
  13. c/c++ 动态库与静态库的制作和使用
  14. 2019 蓝桥杯省赛 A 组模拟赛(一)-忽明忽暗
  15. codeforces 1077F2. Pictures with Kittens (hard version)单调队列+dp
  16. JOI 2018 Final 题解
  17. c#XML转换成实体
  18. 【C++ Primer 第10章】 1.概述(算法总结)
  19. Mac 下的 C++ 开发环境
  20. Git冲突:commit your changes or stash them before you can merge.

热门文章

  1. [题解] [BZOJ4152] The Captain
  2. Infralution.Localization.Wpf
  3. django models 关系
  4. 001-jdk-数据结构-总览
  5. VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群
  6. [Scikit-learn] 1.1 Generalized Linear Models - Neural network models
  7. LeetCode_9. Palindrome Number
  8. gitlab配置webhook报错解决
  9. 使用 tuned/tuned-adm工具动态调优系统CPU性能模式
  10. 【VS开发】MFC中调用C函数模块的解决方案