python企业微信调用_Python 结合企业微信告警脚本

news/2024/7/3 4:46:15

#!/usr/bin/env python

#-*- coding: utf-8 -*-import time

import requests

import json

import os

import traceback

import loggingclassWeChat:

def __init__(self):

self.CORPID= 'ww750dfdfde43613c3'#企业ID,在管理后台获取

self.CORPSECRET= 'rCRzAXI-r7KUZ6uL5HZYYLaqQw2volmnhQrdStu6Qrk'#自建应用的Secret,每个自建应用里都有单独的secret

self.AGENTID= '1000011'#应用ID,在后台应用中获取

self.TOUSER= "g1702543|g1702076|g1701677" # 接收者用户名,多个用户用|分割

def _get_access_token(self):

url= 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'values= {'corpid': self.CORPID,'corpsecret': self.CORPSECRET,

}

req= requests.post(url, params=values,proxies={'https':'https://10.191.131.20:3128'}) ##原因我这边是代理上网的,需要程序里面制定代理地址

data=json.loads(req.text)return data["access_token"]

def get_access_token(self):try:

with open('access_token.conf', 'r') asf:

t, access_token=f.read().split()

except:

with open('access_token.conf', 'w') asf:

access_token=self._get_access_token()

cur_time=time.time()

f.write('\t'.join([str(cur_time), access_token]))returnaccess_tokenelse:

cur_time=time.time()if 0 < cur_time - float(t) < 7260:returnaccess_tokenelse:

with open('access_token.conf', 'w') asf:

access_token=self._get_access_token()

f.write('\t'.join([str(cur_time), access_token]))returnaccess_token

def send_data(self, message):

send_url= 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' +self.get_access_token()

send_values={"touser": self.TOUSER,"msgtype": "text","agentid": self.AGENTID,"text": {"content": message

},"safe": "0"}

logging.basicConfig(filename='log.txt', level=logging.DEBUG,format='%(asctime)s - %(levelname)s - %(message)s') ##输出执行日志try:

send_msges=(bytes(json.dumps(send_values)))respone= requests.post(send_url, send_msges,proxies={'https':'https://10.191.131.20:3128'})respone=respone.json() #当返回的数据是json串的时候直接用.json即可将respone转换成字典return respone["errmsg"]

except:

logging.debug(traceback.format_exc())if __name__ == '__main__':

wx=WeChat()

msg="""服务器10.134.167.126 EVMI JOBS计划任务异常告警提示如下:

TaskName名称 上次执行失败时间"""file= open('reulst_text.txt','r')whileTrue:

line=file.read()

msg+= line.strip()+'\n'

ifnot line:breakwx.send_data(msg)


http://www.niftyadmin.cn/n/3166409.html

相关文章

tlias 教学过程_全方位提升授课质量,传智专修学院让学生实现快速成长

在教育行业之内&#xff0c;一直都存在这样的话语&#xff0c;“一节课的授课质量&#xff0c;对学生的价值观塑造、能力培养&#xff0c;起着关键性的作用。”确实&#xff0c;课堂是孕育人才的重要平台&#xff0c;是传授理论知识的殿堂。倘若授课质量&#xff0c;受各种因素…

mysql root 被锁_mysql查看死锁和解除锁

解除正在死锁的状态有两种方法&#xff1a;第一种&#xff1a;1.查询是否锁表show OPEN TABLES where In_use > 0;2.查询进程(如果您有SUPER权限&#xff0c;您可以看到所有线程。否则&#xff0c;您只能看到您自己的线程)show processlist3.杀死进程id(就是上面命令的id列)…

无监督学习新突破!华为美研所提出自动编码变换网络AET

深度神经网络的成功往往依赖于大量有标记的样本数据&#xff0c;但是这样的数据在许多实际场景中很难获得。为了解决这一挑战&#xff0c;无监督学习是首选方法&#xff0c;即不使用任何标记数据训练神经网络。与传统的自动编码数据&#xff08;AED&#xff09;方法不同&#x…

python自动化定位元素的方法_基于python全局设置id 自动化测试元素定位的方法分享...

背景&#xff1a;在自动化化测试过程中&#xff0c;不方便准确获取页面的元素&#xff0c;或者在重构过程中方法修改造成元素层级改变&#xff0c;因此通过设置id准备定位。一、python准备工作&#xff1a;功能&#xff1a;用自动化的方式进行批量处理。 比如&#xff0c;你想要…

docker 13 dockerfile的保留字指令

Dockerfile是用来构建Docker镜像的构建文件&#xff0c;是由一系列命令和参数构成的脚本。 构建三步骤&#xff1a;1、编写dockerfile文件&#xff1b;2、docker build&#xff1b;3、docker run dockerfile内容基础知识&#xff1a; 1、每条保留字指令必须为大写字母且后面要…

单片机移频防啸叫_JDS M-9108全自动高速移频反馈抑制器 会议鹅颈话筒麦克风防啸叫...

JDS M-9108全自动高速移频反馈抑制器 会议鹅颈话筒麦克风防啸叫的详细描述&#xff1a;产品型号&#xff1a;M-9108产品说明&#xff1a;超宽频响电路技术&#xff0c;频响达20HZ-20KHZ&#xff0c;改变了人们对移频器的失真看法&#xff0c;听感上已经很难分辨&#xff0c;且由…

奇数位递增偶数位递减的数组_字节教育后端三轮面经, 许愿hr面

字节一面final (类, 成员变量, 方法) equals的区别Java的多线程同步方式(Lock类, synchonized, volatile)synchonized仔细讲一下(jvm指令, 锁优化, 和JUC的lock的区别)聊GC(新生代 老年代, 回收算法, 收集器)进程线程区别(linux中怎么实现)僵尸进程的产生 如何避免三次握手四次…

待空闲时间再写写

待空闲时间再写写Python3的转载于:https://blog.51cto.com/ccj168/2357371