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()
  • 相关阅读:
    Hibernate学习笔记_关系映射
    Hibernate学习笔记_核心幵发接口及三种对象状态
    Hibernate学习笔记_联合主键
    Hibernate学习笔记_ID生成策略
    API的控制器
    MVC跨域API
    WindowsForms 调用API
    触发器
    视图
    分页的存储过程的用法
  • 原文地址:https://www.cnblogs.com/tarzen213/p/15211823.html
Copyright © 2011-2022 走看看