zoukankan      html  css  js  c++  java
  • 17:30定时开始一个持续任务比如每间隔30分钟检测,并且在判断23:00超过关闭任务,实现方法

    17:30定时开始一个持续任务比如每间隔30分钟检测机器是不是关机,并且超过23:00关闭任务,实现方法:

    首先在linux上创建一个17:30开始的任务:是一个sh脚本并且输入到日志当中
    crontab -e

    30 17 * * * /data/tarzan/code/ci_node_check/run.sh >> /data/tarzan/code/ci_node_check/run.log


    这个shell执行的任务是一个while True,每间隔30分钟尝试ssh链接机器,如果失败就触发企业微信机器人,通知大家,并且等待1h后再次尝试链接机器。如果ssh链接成功,等待30min后再检测。并且需要在23:00前结束检测。

    import requests
    import paramiko
    from public_log import logger
    from multiprocessing import Pool
    import time
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    def fun(hostname):
        while True:
            try:
                ssh.connect(hostname=hostname, port=22, username='uos', password='1', timeout=10)
            except BaseException as e:
                # 触发提醒
                logger.error('服务器无法链接:%s' % e)
                print('触发')
                # 结束循环
                send_message(hostname)
                time.sleep(60 * 60)
            else:
                logger.info('链接正常')
                time.sleep(60 * 30)
                # 判断时间大于23:30就停止循环
                now_localtime = time.strftime("%H:%M:%S", time.localtime())
                print(now_localtime)
                if "23:30:00" < now_localtime:
                    break
                    
    if __name__ == '__main__':
        p = Pool(4)
        ip_list = ['127.0.0.241', '127.0.0.241', '127.0.0.242']
        for i in ip_list:
            p.apply_async(fun, args=(i,))
        p.close()
        p.join()
  • 相关阅读:
    Programming asp.net笔记第三章 Controls: Fundamental Concepts
    Aspnet_regsql.exe命令行使用小结
    [转] 130道C#面试题
    [转]彻底搞定C指针-函数名与函数指针
    common softwares
    PS10.0教程视频
    正则表达式30分钟入门教程
    Windows Live Messenger Error 80040154 (Windows 7)
    Canvas translate() 绘制“米”字
    HTML5钟表【每日一段代码3】
  • 原文地址:https://www.cnblogs.com/tarzen213/p/15211823.html
Copyright © 2011-2022 走看看