1. 程式人生 > >Python定時執行腳本

Python定時執行腳本

orm node lis quorum 如果 namenode 任務 mat cond

最近測試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定時執行腳本