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就變成每天的定時任務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM