在运维岗位中经常巡检系统指标或者查看程序的日志,对实时生成的log文件,进行实时滚动监控

例如:需要对程序的日志进行提取关键字,并且发送到企业微信

代码示例:
#!/usr/bin/python3
# encoding=utf-8
import os
import subprocess
import time
import requests, json# 发送文字
def send_wechat_msg(content,webhook_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bedfjb79-49ca-42c2-598a-a29098bpe367"):data = {"msgtype": "markdown", "markdown": {"content": content}}r = requests.post(url=webhook_url, data=json.dumps(data, ensure_ascii=False).encode('utf-8'), verify=False)return r.text, r.status_code#获取目录下的文件log
file = os.popen("ls -l /home/up/log/up*.log|awk -F' ' '{print $9}'").read()
item = file.split('\n')[0]# 持续监控日志
def monitorLog(logFile):print('监控的日志文件是{}'.format(logFile))popen = subprocess.Popen('tail -10f ' + item, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)while True:line = popen.stdout.readline().strip()  # 读取行# 判断iupp是否在行中if 'iupp' in str(line):eeg_id = str(line).split('eeg_id:')[-1].split(',')[0]  # 进行提取想要的值eeg_type = str(line).split('eeg_type:')[-1].split(',')[0]  # 进行提取想要的值thistime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))  # 系统时间print('eeg_type: ' + eeg_type, ' | ', 'eeg_id: ', eeg_id)  # 打印确认值#我这边需要拿到值去程序跑一下,再取结果输出,如果其他日志的话,可以调取机器人输出内容了time.sleep(5)  # 睡眠一下,不然读不到file = os.popen("iupp rds show rd du {} {}".format(eeg_id,eeg_type)).read()file2 = file + '}'  # 经过测试程序输出的内容末尾少},进行添加,方便序列化print(file2)  # 显示想要的内容try:if json.loads(file2)['id'] == 1:  # 变为字典,取主要的值进行匹配send_wechat_msg(file2)  # 调用企业微信发送模块,将内容发送至企业微信print('已发送到企业微信中', thistime)else:print('没有id: 1')continueexcept Exception:print('有异常')continueelse:print('本行没有匹配匹配到iupp字符')continue# if thistime >= stoptime:# 终止子进程# popen.kill()# print ('杀死subprocess')# break#    time.sleep(2)if __name__ == '__main__':monitorLog(item)
代码执行

后台运行,或者添加定时任务,都可以
nohup python3 -u jk_iupp_log_.py > test_out.out 2>&1 &

执行结果

python实时监控滚动日志,推送企业微信消息相关推荐

  1. SAP 接口主动推送企业微信异常消息

    "推送企业微信格式lv_json = '{ "msgtype": "markdown", "markdown": ' && ...

  2. SAP-ABAP-企业微信:ZCSM37-后台JOB异常检查主动推送企业微信群

    场景:异常JOB主动推送企业微信群 (企业微信机器人可百度创建,注意群不能有企业外的人员,否则接口无效) 报错提示场景:(报错图片如下) 1.JOB异常导致任务消失 2.通JOB多个任务同时执行 3. ...

  3. gitlab推送企业微信机器人项目代码

    一.gitlab推送企业微信机器人项目代码 # coding=utf-8 """@Project :pachong-master@File :gitlab_wechat. ...

  4. 企业微信api接口调用-触发推送企业微信微信好友

    企业微信SDK接口API调用-触发推送企业微信微信好友 /*** 触发企业微信推送微信好友列表* @author wechat:happybabby110* @blog http://www.wlka ...

  5. 企业微信SDK接口API调用-触发推送企业微信微信好友

    企业微信SDK接口API调用-触发推送企业微信微信好友 /**      * 触发企业微信推送微信好友列表      * @author wechat:happybabby110      * @bl ...

  6. 企业微信api接口调用-触发推送企业微信联系人列表

    企业微信SDK接口API调用-触发推送企业微信联系人列表 /** * 触发推送企业微信联系人列表任务 * @author wechat:happybabby110 * @blog http://www ...

  7. 企业微信SDK接口API调用-触发推送企业微信联系人列表

    /**      * 触发推送企业微信联系人列表任务      * @author wechat:happybabby110      * @blog http://www.wlkankan.cn   ...

  8. 使用.NET推送企业微信群聊消息

    1.添加机器人 需要在群聊中手动添加,这里不做详细介绍. 在某个群组添加机器人之后,创建者可以在机器人详情页看的该机器人特有的webhookurl.开发者可以按以下说明a向这个地址发起HTTP POS ...

  9. python-消息推送(企业微信)

    目录 消息类型 文本 markdown 图片 图文 文件 卡片消息 发送请求 接口文档:发送应用消息 - 接口文档 - 企业微信开发者中心 消息类型 文本 ## qywx_data.pydef tex ...

最新文章

  1. websocket获取httpsession报NullPointerException解决办法
  2. spring文件下载记录
  3. PowerDesigner使用教程 —— 概念数据模型
  4. sql xml 入门
  5. Android官方开发文档Training系列课程中文版:与其它APP交互之从Activity获得结果
  6. vue 怎么全局到入常量_Vue 中如何定义全局的变量和常量(转)
  7. windows下使用boost安装教程vs2015
  8. Auto type deducing
  9. juery 常用方法
  10. CAD2010 为了保护_一文弄懂,锂电池的充电电路,以及它的保护电路方案设计
  11. IE无法正常显示中文名图片
  12. android 圆点指示器,ViewPager加上小圆点指示器效果
  13. 使用角色管理工具 安装或配置microsoft.net framework 3.5 sp1
  14. Loadrunner_集合点(rendezvous)
  15. 安装BiocManager显示Warning in install.packages : package ‘BiocManager’ is not available for this version
  16. 小组取什么名字好_注册公司取什么名字好 八字起名大全
  17. Ain_电脑所有乱码文字集
  18. 美国短信怎么发?美国短信如何计费?
  19. OpenXR源码情景分析
  20. 2021-2025年中国SWIR-InGaAs光电二极管线阵行业市场供需与战略研究报告

热门文章

  1. vim使用matchit
  2. mysql的ace什么概念_65W超级闪充什么概念?OPPO Reno Ace实测讲出真相
  3. ecshop下启用QQ在线服务,并能实时更新QQ在线状态
  4. 景点解说二维码怎么做?一键教你轻松生成二维码
  5. 暗码 手机拨号启动隐藏应用
  6. flash剧本策划节约用水_节水活动剧本—节约用水人人有责
  7. 模糊控制中比例系数的确定和输入e和ec,即变化和变化率的选取
  8. 拼多多启动第四届农货节:携手10万涉农店铺,与8.8亿消费者共享“秋收喜悦”
  9. ubuntu14.04下好用的英汉词典
  10. java地位_这12条理由告诉你,为什么Java的地位无法被撼动!