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就变成每天的定时任务

时间: 2024-10-11 10:49:33

Python定时执行脚本的相关文章

linux下定时执行脚本

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动.关闭这个服务: 1.cron的启动 /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond reload //重新载入配置 你也可以将这个服务在系统启动的时候自动启动:

linux定时执行脚本

linux定时执行脚本 阅读目录 1. cron服务[Ubuntu环境] 2. crontab用法 3. 编辑crontab文件 4. 流程举例 5. 几个例子 Linux中,周期执行的任务一般由cron这个守护进程来处理.cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“crontab”,是“cron table”的简写. 回到顶部 1. cron服务[Ubuntu环境] 查看cron状态 1 sudo  service cron status 开

Linux下定时执行脚本(转自Decode360)

文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog  老师(业精于勤而荒于嬉 QQ:150355677 MSN:[email protected]) 菜鸟表示不会写shell脚本,但还是能够看懂的,昨天因为传了太多数据,结果namenode进入了safe mode,然后小伙伴赶紧就暂停了每天早晨4点自动执行的数据合并压缩和传输的脚本,今天我自己准备改,才发现这篇博文. 先说说

Loadrunner定时执行脚本

# -*- coding: utf-8 -*- import timeimport os #格式为小时,分钟,脚本名称(包括盘符,最好是放在根目录下)#需要把LoadRunner安装路径的Bin加入系统参数Path下run_time = [[16,30,'scenario1'],[17,30,'scenario2'],[17,30,'scenario2']] while 1 == 1: now_time = time.localtime() now_hour = now_time.tm_hour

python 批量执行脚本(服务端和客户端建立TCP连接)

有很多开源的批量部署的工具可以使用,比如puppet, ansible , saltstack , chef . 但这些工具都有自己的一套语法规则,你得按照他的语法来编写程序,然后批量执行. 那有没有方法可以直接写bash 或者Python脚本,然后批量执行呢? 方法当然是有的,需要自己写程序来传输脚本,拷贝文件,再复杂点,可以自定义脚本式同步还是异步执行,自定义要执行的主机组,等等,需要根据自己的业务需要来想. 这里只是抛砖引玉,我采用建立socket(TCP)连接来批量执行脚本. 服务端脚本

python自动化执行脚本

---恢复内容开始--- 1 (1)首先在你的.py文件上加上一行代码注释: #!/usr/local/bin/python2.7 (2)终端下执行: crontab -e 进入后,输入i 进入可编辑字段,写入 : */30 * * * * python /Users/tongmeina/PycharmProjects/JiraToPdf/everyorg.py 解释: /Users/tongmeina/PycharmProjects/JiraToPdf/everyorg.py 的含义: 为你要

linux下crontab 定时执行脚本笔记

因为linux下要定时运行coreseek的脚本文件而使用到了crontab,发现一些使用的时候要注意的地方: 1.常用命令 service cron start 启动cron服务 service cron stop 停止cron服务 service cron reload 不停止的服务的情况下载入crontab配置文件 service cron restart 重启cron服务 crontab -e是编辑crontab 配置文件,这里有个问题,运行此命令后默认的编辑器nano,会让人很不习惯,

python定时执行方法

1  time.sleep import time for i in range(5): print(i) time.sleep(10) 2 用shed import time import sched schedule = sched.scheduler ( time.time, time.sleep ) def func(string1,float1): print("now is",time.time()," | output=",string1,float1

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

1 在mysql中我们可以直接进行一些参数设置让它成定时为我们执行一些任务了,这个虽然可以使用windows或者linux中的计划任务实现,但是mysql本身也能完成 2 3 查看event是否开启 4 复制代码 代码如下: 5 6 show variables like '%sche%'; 7 将事件计划开启 8 复制代码 代码如下: 9 set global event_scheduler =1; 10 11 12 创建存储过程test 13 14 复制代码 代码如下: 15 16 CREA