使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友


Posted in Python onJune 05, 2019

使用python3调用wxpy模块,监控linux日志并定时发送消息给群组或好友,具体代码如下所示:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from threading import Timer
from wxpy import *
import requests
import subprocess
import time
from PIL import Image, ImageDraw, ImageFont
from apscheduler.schedulers.blocking import BlockingScheduler
#cache_path=true 表示登陆一次之后,进行缓存,下次登陆只需要手机确认
bot = Bot(console_qr=2,cache_path=True)
#获取topic是否消费延迟
def get_Lag():
  text=""
  p = subprocess.Popen('kafka-consumer-offset-checker --zookeeper 192.168.1.116 --group t_sync --topic SYNC_DATABASE_UPDATE', shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True) #universal_newlines=True,表示输出为字符串,默认是byte
  while True:
    line =p.stdout.readline()
    if not line:
      break
    else:
      text+=line + '\n'
  return text
def get_news():
  text=[]
  count=0
  t=True
  p = subprocess.Popen('tail -F /home/hadoop/da.txt', shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True)
  while True:
    line =str(p.stdout.readline())
    if not line:
      break
    elif "send data" in line and t:
      for item in line.split(','):
        count +=1
        if count <= 200:
           text.append(item)
      break
  return text
def get_context():
  result=""
  word=get_news()
  for i in range(len(word)):
    if(i % 4 ==0):
      result= result+word[i]+"\n"
    else:
      result= result+word[i]+"  "
  return result
def send_image():
  try:
    lags=get_Lag()
    print(lags)
    content=get_context()
#发送消费延迟的数据
    lagImage= Image.new('RGB', (1000, 600),(255,255,255))
    draw = ImageDraw.Draw(lagImage)
    font = ImageFont.truetype("/usr/share/fonts/cjkuni-ukai/ukai.ttc", 18, encoding="unic")
    draw.text((10, 10), lags, 'black', font)
    lagImage.save('/home/hadoop/lags.jpg')
#发送日志消息
    image= Image.new('RGB', (1000, 810),(255,255,255))
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype("/usr/share/fonts/cjkuni-ukai/ukai.ttc", 18, encoding="unic") #ukai.ttc 字体
    draw.text((10, 10), content, 'black', font)
    image.save('/home/hadoop/123.jpg')
 
 #发送群组
    group = bot.groups().search("大数据小组")[0]
    group.send_image('/home/hadoop/123.jpg')
 #发送好友
    my_friend = bot.friends().search(u'涛')[0]
    my_friend.send_image('/home/hadoop/lags.jpg')
    my_friend.send_image('/home/hadoop/123.jpg')
    # t = Timer(100, send_image)
    #t.start()
  except:
    my_friend.send(u"今天消息发送失败了")
if __name__ == "__main__":
  #send_image()
  scheduler = BlockingScheduler()
  scheduler.add_job(send_image, 'cron', hour='15', minute='01')
  scheduler.add_job(send_image, 'cron', hour='14', minute='58')
  scheduler.start()

总结

以上所述是小编给大家介绍的使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
归纳整理Python中的控制流语句的知识点
Apr 14 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
定制FileField中的上传文件名称实例
Aug 23 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
Python运维开发之psutil库的使用详解
Oct 18 Python
如何基于Python实现数字类型转换
Feb 07 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
使用Django清空数据库并重新生成
Apr 03 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
Selenium 安装和简单使用的实现
Dec 04 Python
python中@contextmanager实例用法
Feb 07 Python
python3下载抖音视频的完整代码
Jun 05 #Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 #Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 #Python
python添加菜单图文讲解
Jun 04 #Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 #Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 #Python
pandas DataFrame索引行列的实现
Jun 04 #Python
You might like
ThinkPHP发送邮件示例代码
2016/10/08 PHP
PHP的PDO连接讲解
2019/01/24 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
python按照多个条件排序的方法
2019/02/08 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
什么是规则表达式
2012/05/03 面试题
精彩的大学生自我评价
2013/11/17 职场文书
自我推荐信范文
2014/05/09 职场文书
销售求职信范文
2014/05/26 职场文书
促销活动总结怎么写
2014/06/25 职场文书
家具商场的活动方案
2014/08/16 职场文书
党校党性分析材料
2014/12/19 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
学校捐书活动总结
2015/05/08 职场文书
如何写好开幕词?
2019/06/24 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js