说明:

发现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. rational rose java.lang.classNotFoundException

            C:\Windows\Java\TrustLib\RoseDataModeler.zip;C:\Windows\Java\TrustLib\comwrappers.zip;C:\Win ...

  2. Easy and cheap cluster building on AWS backup

    https://grapeot.me/easy-and-cheap-cluster-building-on-aws.html Thu 17 July 2014 , by Yan Wang | 2 Co ...

  3. 01背包问题之2(dp)

    01背包问题之2 有n个物品,重量和价值分别为wi和vi,从这些物品中挑选出重量不超过W的物品,求所有挑选方案中物品价值总和的最大值 限制条件: 1 <= n <= 100; 1 < ...

  4. C++解析六-继承

    面向对象程序设计中最重要的一个概念是继承.继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易.这样做,也达到了重用代码功能和提高执行时间的效果.当创建一个类时,您不需要重新编 ...

  5. July_One_Week—linked list

    #include <stdio.h> #include <stdlib.h> typedef struct linklist { unsigned int count; str ...

  6. bzoj5016

    题解: 吧询问变成前缀形式 然后莫队 代码: #include<bits/stdc++.h> ; using namespace std; ]; ,L=,R=; ,Ans[N]; bool ...

  7. PropertiesUtil 获取文件属性值

    有时候不要把一些属性值写死在代码中,而是写在配置在文件中,方便更改 PropertiesUtil工具类:读取key-value形式的配置文件,根据key获得value值  1.测试类 public c ...

  8. 简单选择排序(Simple Selection Sort)

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  9. 四:(之三)制作镜像和一些docker命令

    3.DIY image 3.1如何去掉sudo权限命令,让当前用户拥有操作docker的权限? 3.2 制作一个image: 拉取一个非常小的base image,hello-world.其中是一个可 ...

  10. Android : 修改内核源码 and 编译、打包成新的boot.img

    一.Android内核源码的下载: 1.Google GIT地址: $ git clone https://android.googlesource.com/kernel/common.git $ g ...