Python定时执行脚本

 

最近测试hbase,老发现服务挂掉,自己不能及时发现,想了想,写了个脚本,让脚本每个小时执行一次,以便检测是否有服务挂掉,如果有服务挂掉,及时启动

 

import os
import datetime
class CheckService(object):

    def __init__(self):
        pass
  
    def getService(self):
        # service list
        service = ['Jps'
                ,'EmbeddedServer'
                ,'QuorumPeerMain'
                ,'NodeManager'
                ,'ResourceManager'
                ,'NameNode'
                ,'SecondaryNameNode'
                ,'HMaster'
                ,'HRegionServer'
                ,'RunJar'

                ]
        # Traversal list
        for i in service:
            a = "jps | awk '{print $2}'|grep "+i
            res = os.system(a)
            # Determine whether the service is running
            if res != 0 :
                print "%s is not running!" %(i)
                if i == 'HMaster':
                    os.system('start-hbase.sh')
                elif i == 'HRegionServer':
                    os.system('local-regionservers.sh start 1')
                elif i == 'EmbeddedServer':
                    os.system('ranger-admin start')
                elif i == 'QuorumPeerMain':
                    os.system('zkServer.sh start')
                    else:
                    print 'restart Hadoop !!!'

    def timerFun(self,sched_Timer):
        flag = 0
        while True:
            now = datetime.datetime.now()
            if now == sched_Timer:
                self.getService()
                flag = 1
          else: if flag == 1: sched_Timer = sched_Timer + datetime.timedelta(hours=1) flag = 0 if __name__ == "__main__": cs = CheckService() sched_Timer = datetime.datetime(2017,7,25,9,14) print 'run the timer task at {0}'.format(sched_Timer) cs.timerFun(sched_Timer)

这个代码也可以扩展,把hours=1改成minutes=1就变成了每个小时定时任务,改成days=1就变成每天的定时任务

转载于:https://www.cnblogs.com/royfans/p/7232881.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值