从朋友那里得来的OGG 重启脚本,感觉很好用,分享给大家。

定时任务

00 6-20 * * * /oggdata/log/oggautorestart.sh >/oggdata/log/crontab_oggautorestart.log 2>&1
[说明]  因为晚上可以有维护操作,我们不希望在维护期间OGG 自动跑起来

脚本

oggautorestart.sh

#!/bin/bash
if [ -f ~/.bash_profile ];
then
      . ~/.bash_profile
fi

#OGG 目录
OGGHOME=/oggdata
#创建日志目录
if [ ! -d $OGGHOME/log ]; then
   mkdir $OGGHOME/log;
fi

cd $OGGHOME/log
echo "Start checking ......begin time: `date +'%Y%m%d %H:%M:%S'`" >> $OGGHOME/log/all.log
echo "info all"|$OGGHOME/ggsci|grep -E "MANAGER" >> $OGGHOME/log/status.all
echo "info all"|$OGGHOME/ggsci |grep -E "REPLICAT|EXTRACT" >> $OGGHOME/log/status.all

cat $OGGHOME/log/status.all | while read line
do
hhh=`echo $line | awk '{print $1}'`
sss=`echo $line | awk '{print $2}'`
nnn=`echo $line | awk '{print $3}'`

if [ "$hhh" = "MANAGER" ]
then
       if [ "$sss" != "RUNNING" ]
       then
               echo "$hhh is not running......start begin time: `date +'%Y%m%d %H:%M:%S'`" >> $OGGHOME/log/all.log
               echo "start $hhh" |$OGGHOME/ggsci
       else
               echo "MANAGER is running" >> $OGGHOME/log/ok.all
       fi

else
       if [ "$sss" != "RUNNING" ]
       then
               echo "$nnn is not running......start begin time: `date +'%Y%m%d %H:%M:%S'`" >> $OGGHOME/log/all.log
               echo "start $nnn" |$OGGHOME/ggsci
       else
               echo "$nnn is running" >> $OGGHOME/log/ok.all
       fi
fi

done

> $OGGHOME/log/status.all
> $OGGHOME/log/ok.all
echo "Ending check......end time: `date +'%Y%m%d %H:%M:%S'`" >> $OGGHOME/log/all.log
echo "##################" >> $OGGHOME/log/all.log

OGG 自动重启脚本的更多相关文章

  1. linux服务器挂掉自动重启脚本(转)

    实现原理主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则执行我们预设的重启脚本. 首先我们要向crontab加入一个新任务 sudo crontab -e #进入编 ...

  2. tomcat宕机自动重启脚本

    #!/bin/bash# 获取tomcat进程ID /usr/share/tomcatTomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v ...

  3. Memcached进程挂掉自动重启脚本

    vim memcached_check.sh   #!/bin/sh #check memcached process and restart if down PATH=$PATH:/opt/env/ ...

  4. window程序意外关闭自动重启脚本实现

    @echo off : tasklist|find /i "xxxx"||start yyyy ping/n 127.1>nul 新建 .bat 文件,将其写入文件 xxxx ...

  5. linux下通过脚本实现自动重启程序的方法

    无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...

  6. supervisor开机自动启动脚本+redis+MySQL+tomcat+nginx进程自动重启配置

    [root@mongodb-host supervisord]# cat mongo.conf [program:mongo]command=/usr/local/mongodb/bin/mongod ...

  7. windows程序意外关闭子订重启脚本

    window程序意外关闭自动重启脚本实现   @echo off :1 tasklist|find /i "xxxx"||start yyyy ping/n 11 127.1> ...

  8. 【运维技术】shell脚本实现线程挂掉,自动重启功能

    由于分布式系统的流行,服务器上面部署的项目都是多实例的.而我又希望有一个功能,当服务器出现异常情况能够自动重启实例. 所以我想到了使用shell脚本监控实例进程id,如果不存在的话,就重启对应的实例. ...

  9. tomcat监控,自动重启shell脚本

    tomcat监控,自动重启shell脚本如下,取名 monitor_tomcat.sh: #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作 # 获取tomcat进程ID(其中 ...

随机推荐

  1. .NET CORE添加引用包

    一 .添加服务端引用 1.直接右键添加项目引用,添加后再csproj文件中如下②,也可以直接用这种格式写入csproj文件中 2.直接右键添加DLL引用,添加后再csproj文件中如下③,也可以直接用 ...

  2. iOS的推送证书过期的处理

    1.删除MAC上钥匙串访问中对应的推送证书.<根据过期日期看> 2.登录苹果开发者后台,revoke删除已过期推送证书(貌似会自己消失不用删除,具体记不清了...),然后为对应App ID ...

  3. 设置Android模拟器的窗口大小

    Android SDK 中两个位置可以设置Android模拟器的窗口大小 1.设置Android模拟器的分辨率 Android Virtual Device Manager中创建AVD时,窗口中部Re ...

  4. UI界面测试

    概念:指测试用户界面的风格是否满足用户要求.文字是否正确.页面是否美观.文字与图片组合是否完美.操作是否友好等. 1.窗体测试 { 窗体大小. 移动窗体. 缩放窗体. 显示分辨率. 状态栏. 工具栏. ...

  5. 不用第三方软件–一键开关笔记本电脑wifi热点的批处理

    笔者有点洁癖啊,很强烈抵制那些辣鸡流氓软件的.用笔记本开个wifi还要装东西,搞不好给我塞一堆东西,我勒个fdkshgkhalsh,. 下面就是集设置密码与开关wifi于一身的bat,这个批处理能简化 ...

  6. vscode常用插件小结

    工欲善其事,必先利其器. 个人用过的代码编辑器有sublime,webstrom,vscode,H5builder.综合比较下来还是更倾向于vscode. sublime是一款轻量级的编辑器,优点是启 ...

  7. DSP6455的EMIFA口

    DSP6455的EMIFA口 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 支持两种不同的接口模式: 异步接口:标准的SRAM,ROM接口 同步接口:SBS ...

  8. 移动架构-手写ButterKnife框架

    ButterKnife在实际开发中有着大量运用,其强大的view绑定和click事件处理,使得开发效率大大提高,同时增加了代码的阅读性又不影响其执行效率 注解的分类 注解主要有两种分类,一个是运行时, ...

  9. 跨域及jsonp

    什么是跨域? 要解释跨域,就要先说明下什么是域?域的英文名是Domain,百度百科给的定义是: 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust ...

  10. Vue 开发技巧或者说Vue知识点梳理(转,自个学习)

    Vue 组件通讯 ——常见使用场景可以分为三类: 父子通信: 父向子传递数据是通过 props,子向父是通过 events($emit):通过父链 / 子链也可以通信($parent / $child ...