欢迎点评,大家一起来优化

 计划思路:  只有在mysql slave java 进程状态都正常的情况下才允许nginx 运行, 否则就干掉它, 负载用的是阿里的SLB

#bin/bash

#邮件函数   我怕看不见就定义了发送十条
mysql_kill_ngx(){
ps -ef|grep nginx|grep -v grep |awk '{print $2}'|xargs -i{} kill -9 {}
pkill nginx
for i in {1..10};
do
char="MySQL slave is not ok"
echo "$char"
echo "ERROR:`hostname` $char"|mail -s "$char" ***@.com>/dev/null 2>&1
#sleep 60
done
}
java_kill_ngx(){
ps -ef|grep nginx|grep -v grep |awk '{print $2}'|xargs -i{} kill -9 {}
pkill nginx
for i in {1..10};
do
echo "ERROR:`hostname` Java is not ok "|mail -s "Java is not ok" ***@.com >/dev/null 2>&1
#sleep 60
done
}

#这里是一个循环保证脚本一直监控

while true
do
HOME=/home /data/opt/mysql/bin/mysql -e "show slave status\G;"| egrep "_Running|Behind_Master" >slave.log  #查询slave状态   这个命令方法解释参见(https://www.cnblogs.com/musen/p/11512122.html
array=($(egrep "_Running|Behind_Master" slave.log|awk '{print $NF}'))

#判断Mysql slave状态
if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[2]}" == "0" ]
then
echo "MySQL is slave is ok"
java_status=`ps -ef|grep java|grep 'jar$'|grep app`
nginx_status=`ps -ef|grep nginx|grep -v grep`

#判断java进程状态
if [ -z "${java_status}" ];
then echo "java not ok"
java_kill_ngx

else
echo "Java is ok"

#判断nginx状态
if [ -z "${nginx_status}" ];
then echo "nginx not ok"
else
echo "nginx is ok"
/opt/ng/sbin/nginx
fi
fi
else

mysql_kill_ngx
#break
fi
sleep 30
done

最新文章

  1. RapidJSON 代码剖析(三):Unicode 的编码与解码
  2. [Leetcode] Roman to Integer
  3. Android提交数据到JavaWeb服务器实现登录
  4. RFID基础知识
  5. petapoco定制,比较SQL事务,存储过程,分布式事务(MSDTC)的区别和场景
  6. SVN提交碰到的问题奇怪的问题
  7. chrome 49 版本 跨越 --args --disable-web-security --user-data-dir
  8. Eclipse小技巧--快速输入System.out.println();(转)
  9. 两个实用的Python的装饰器
  10. SQL NULL Values
  11. 常用命令(ubuntu)
  12. Coding.net代码托管空间申请与使用-安装并运行WordPress博客
  13. EJB3.0开发环境的搭建
  14. Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step
  15. npm -v;报错 cannot find module "wrapp"
  16. pwnable.kr input解题记录
  17. SpringBoot使用Elastic-Job
  18. Mysql的跨服务器 关联查询--Federated引擎
  19. SpringBoot中的ajax跨域问题
  20. 【转载】 PhpStudy修改Apache的端口号

热门文章

  1. C# WinfForm 控件之dev报表 XtraReport (七)报表合并
  2. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍
  3. eduCF#61 C. Painting the Fence /// DP 选取k段能覆盖的格数
  4. hdu6325 /// 上凸包
  5. 【POJ】2031 Building a Space Station
  6. android中的属性资源
  7. Swift结构体和类
  8. 通过statCounter计算给定的RDD[Double]的统计信息的方法
  9. 【JZOJ3294】【BZOJ4417】【luoguP3990】超级跳马
  10. NX二次开发-UFUN设置工程图PNG图片长度UF_DRF_set_image_width