Python定时执行脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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就变成每天的定时任务


以上是关于Python定时执行脚本的主要内容,如果未能解决你的问题,请参考以下文章

小知识点Centos 自动任务,定时执行 Python 脚本

MySQL定时执行脚本(计划任务)实例

python脚本利用windows计划定时执行

Python定时执行脚本

windows创建定时任务执行python脚本

linux定时任务执行python脚本