说明:

发现keepalived会在凌晨自动进行主从切换,导致msc相关进程运行不稳定;

通过运行check_server_state.sh,及时终止/启动相关进程;

所有脚本使用supervisord进行管理;

使用smon管理supervisor

#!/bin/bash

msc_vip="10.108.144.6"
check_log="/var/log/sunlight/check_server_state.log"

check_vip=$(ip addr | grep $msc_vip | wc -l)

function print_date()
{
  echo `date "+%Y/%m/%d %H:%M:%S"`
}

while true
do
echo "-------------------------------------------------------------"
#master
if [ $check_vip -eq 1 ];then
  echo "[ info ] $(print_date) Server is in master state......"

  check_gslb=$(ps -ef | grep "gslb_server" | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_gslb number : $check_gslb"
  if [ $check_gslb -lt 1 ];then
    /usr/local/sunlight/cdn/gslb/bin/startup.sh
  fi

  check_gnm=$(ps -ef | grep "gnm_server" | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_gnm number : $check_gnm"
  if [ $check_gnm -lt 1 ];then
    /usr/local/sunlight/cdn/gnm/bin/startup.sh
  fi

  check_nm=$(ps -ef | grep -E "\bnm_server" | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_nm number : $check_nm"
  if [ $check_nm -lt 1 ];then
    /usr/local/sunlight/cdn/nm/bin/startup.sh
  fi

  check_vms=$(ps -ef | grep vms_server | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_vms number : $check_vms"
  if [ $check_vms -lt 1 ];then
    /usr/local/sunlight/cdn/vms/bin/startup.sh
  fi

fi

#slave
if [ $check_vip -ne 1 ];then
  echo "[ info ] $(print_date) Server is in slave state......"

  check_gslb=$(ps -ef | grep "gslb_server" | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_gslb number : $check_gslb"
  if [ $check_gslb -gt 0 ];then
    /usr/local/sunlight/cdn/gslb/bin/shutdown.sh
  fi

  check_gnm=$(ps -ef | grep "gnm_server" | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_gnm number : $check_gnm"
  if [ $check_gnm -gt 0 ];then
    /usr/local/sunlight/cdn/gnm/bin/shutdown.sh
  fi

  check_nm=$(ps -ef | grep -E "\bnm_server" | grep -v grep | wc -l)
  echo "[ info ] $(print_date) check_nm number : $check_nm"
  if [ $check_nm -gt 0 ];then
    /usr/local/sunlight/cdn/nm/bin/shutdown.sh
  fi

fi
sleep 60
done

MSC服务器-主从检测脚本-check_server_state.sh的更多相关文章

  1. 检查服务器主从状态的脚本-check_server_state.sh

    分别检查服务器在Master/Slave状态下,各项服务是否正常,否则报警: 原来使用keepalived每隔1分钟调用,由于执行结果对keepalived的weight参数有影响,所以移动到外部,使 ...

  2. python MySQL-Slave从服务器状态检测脚本

    #!/bin/bash mysql -e "show slave status\G" > mysql_status.txt array=($(egrep 'Slave_IO_ ...

  3. Tomcat重启脚本restart.sh停止脚本stop.sh

    Tomcat重启脚本restart.sh停止脚本stop.sh Tomcat本身提供了 startup.sh(启动)shutdown.sh(关闭)脚本,我们在部署中经常会出现死进程形象,无法杀掉进程需 ...

  4. Linux 服务器系统监控脚本 Shell【转】

    转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...

  5. Redis + keepalived 高可用行配置检测脚本

    Redis 在生产配置中:除redis集群.哨兵模式之外:主从模式还是比较普遍的. 配置 redis 多主从:由 keepalived 做 VIP 地址漂移.可以实现redis的高可用性. keepa ...

  6. 脚本kafka-configs.sh用法解析

    引用博客来自李志涛:https://www.cnblogs.com/lizherui/p/12275193.html 前言介绍 网络上针对脚本kafka-configs.sh用法,也有一些各种文章,但 ...

  7. Tomcat启动脚本catalina.sh

    1 - 概述脚本catalina.sh用于启动和关闭tomcat服务器,是最关键的脚本另外的脚本startup.sh和shutdown.sh都是使用不同的参数调用了该脚本该脚本的使用方法如下(引自该脚 ...

  8. [记录]CentOS搭建SVN服务器(主从同步)

    CentOS搭建SVN服务器(主从同步)1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: #/ ...

  9. Odoo Linux服务器一键安装脚本使用指南

    Odoo安装脚本介绍 为了帮助更多Linux服务器维护人员快速部署Odoo,为此开源智造(OSCG)基于André Schenkels曾经开放的openerp-install-scripts所构建的基 ...

随机推荐

  1. Weblogic domain扩展教程

    weblogic扩展domain有两种扩展,一是机器上已有要扩展的domain只是在其内增加受管服务器,二是机器上没有domain要新建domain然后增加受管服务器 一.机器上已有要扩展的domai ...

  2. 快速搭建springboot框架以及整合ssm+shiro+安装Rabbitmq和Erlang、Mysql下载与配置

    1.快速搭建springboot框架(在idea中): file–>new project–>Spring Initializr–>next–>然后一直下一步. 然后复制一下代 ...

  3. 我个人对OOP的理解

    OOP面向对象的思维:pay1:封装 A.避免使用非法数据赋值 B.保证数据的完整性 C.避免类内部发生修改的时候,导致整个程序的修改 pay2:继承 A.继承模拟了现实世界的关系,OOP中强调一切皆 ...

  4. 异步socket处理

    服务器端: #include <boost/thread.hpp> #include <boost/asio.hpp> #include <boost/date_time ...

  5. LY.JAVA面向对象编程.内部类

    2018-07-18 10:14:48 /* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部 ...

  6. learning scala write to file

    scala 写文件功能: scala> import java.io.PrintWriterimport java.io.PrintWriter scala> val outputFile ...

  7. python2和python3的区别总结

    python2x和python3x区别: python2x:源码重复,不规范. python3x:  源码规范,优美,清晰,简单. 编译型:将代码一次性全部转化成字节码. 代表语言:C,C++ 优点: ...

  8. Java获取后台数据,动态生成多行多列复选框

    本例目标: 获取后台数据集合,将集合的某个字段,比如:姓名,以复选框形式显示在HTML页面 应用场景: 获取数据库的人员姓名,将其显示在页面,供多项选择 效果如下: 一.后台 查询数据库,返回List ...

  9. SQL-31 获取select * from employees对应的执行计划

    题目描述 获取select * from employees对应的执行计划 explain select * from employees explain  用于获得表的所有细节

  10. js 变量的声明能提升 初始化不会提升

    var x = 5; // 初始化 x elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x + & ...