Python实现个人微信号自动监控告警的示例


Posted in Python onJuly 03, 2019

wechat_sender 是基于 wxpy 和 tornado 实现的一个可以将你的网站、爬虫、脚本等其他应用中各种消息 (日志、报警、运行结果等) 发送到微信的工具。

运行环境

Python 2.7 及以上 Python 3 及以上

实现过程

安装 pip 工具

[root@server1 ~]# wget https://bootstrap.pypa.io/get-pip.py
[root@server1 ~]# python get-pip.py

Python实现个人微信号自动监控告警的示例

pip 安装模块

##安装依赖软件
[root@server1 ~]# yum install -y gcc python-devel
##安装
[root@server1 ~]# pip install wechat_sender

Web登录微信发送消息

安装web服务器

[root@server1 ~]# yum install -y httpd
[root@server1 ~]# systemctl start http
[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# cat /var/www/html/index.html
<html>
<head><meta http-equiv="refresh" content="2"></head>
<style>
  body {
    width: 35em;
    margin: 0 auto;
    font-family: Tahoma, Verdana, Arial, sans-serif;
  }
</style>
<body>
<img src="/qr.png">
</body>
</html>

python脚本代码

[root@server1 ~]# cat /var/www/html/sender.py
#!/bin/bash/env python
#coding:utf-8

from wxpy import *
from wechat_sender import *
from wechat_sender import Sender

#bot = Bot()  ##windows直接扫
#下面这个是服务器版(Linux)
#bot = Bot(qr_path="qr.png")
#避免重复登录重复扫二维码
bot = Bot(qr_path="qr.png",cache_path=True)
##通过文件助手给登录的微信号发消息
bot.file_helper.send('Hello world!')

web登录微信

##执行python脚本,占用终端,web登录后会有提示
[root@server1 ~]# cd /var/www/html/
[root@server1 ~]# python sender.py 
Getting uuid of QR code.
Downloading QR code.
xdg-open: no method available for opening 'qr.png'
Please scan the QR code to log in.

另一方面,打开浏览器输入 ip or localhost,微信扫一扫

Python实现个人微信号自动监控告警的示例

微信登录后,终端释放,提示成功,消息同时发送,并且web二维码失效

Login successfully as someone

微信点击确认

Python实现个人微信号自动监控告警的示例

查看手机助手,消息已经收到!

Python实现个人微信号自动监控告警的示例

监控80端口,自动告警

若是web服务也是80端口,请先登录成功后,如下操作。

shell脚本

[root@server1 ~]# cat /var/www/html/check_80.sh 
#!/bin/sh

x=$(netstat -antlp | grep '\<80\>'|awk -F' ' '{print $4}'|awk -F: '{print $2}')

if [ "$x" != 80 ];then
 python /var/www/html/check_80.py &
else
 python /var/www/html/check01_80.py &
fi
##添加执行权限
[root@server1 ~]# chomd +x /var/www/html/check_80.sh
[root@server1 ~]# cat /var/www/html/check01_80.py 
#!/bin/sh/env python
#coding:utf-8

from wxpy import *
from wechat_sender import *
from wechat_sender import Sender

bot = Bot(qr_path="qr.png",cache_path=True)
##通过文件助手给登录的微信号发消息
bot.file_helper.send('port 80 nice!')
[root@server1 ~]# cat /var/www/html/check_80.py 
#!/bin/sh/env python
#coding:utf-8

from wxpy import *
from wechat_sender import *
from wechat_sender import Sender

bot = Bot(qr_path="qr.png",cache_path=True)
##通过文件助手给登录的微信号发消息
bot.file_helper.send('port 80 error!')
[root@server1 ~]# cat /mnt/check.sh 
#!/bin/sh

cd /var/www/html
sh check_80.sh
[root@server1 ~]# chmod +x /mnt/check.sh

测试脚本

1.httpd 服务开启时,端口 80 存在

[root@server1 ~]# sh /mnt/check.sh

Python实现个人微信号自动监控告警的示例

2.httpd 服务关闭后,端口 80 不存在

[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# sh /mnt/check.sh

Python实现个人微信号自动监控告警的示例

3.httpd 服务再次开启,端口 80 存在

[root@server1 ~]# systemctl start httpd
[root@server1 ~]# sh /mnt/check.sh

Python实现个人微信号自动监控告警的示例

添加任务计划自动监控进行告警

[root@server1 ~]# crontab -e
* 1 * * * sh /mnt/check.sh

投入使用

添加任务计划后,妥善修改脚本,避免频繁告警。

以上这篇Python实现个人微信号自动监控告警的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
python实现list由于numpy array的转换
Apr 04 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python的高阶函数用法实例分析
Apr 11 Python
python中property属性的介绍及其应用详解
Aug 29 Python
Python基础之函数基本用法与进阶详解
Jan 02 Python
pytorch 中的重要模块化接口nn.Module的使用
Apr 02 Python
python 读取二进制 显示图片案例
Apr 24 Python
python接口自动化框架实战
Dec 23 Python
python pandas模块基础学习详解
Jul 03 #Python
python将excel转换为csv的代码方法总结
Jul 03 #Python
pandas实现to_sql将DataFrame保存到数据库中
Jul 03 #Python
python实现控制COM口的示例
Jul 03 #Python
python pandas时序处理相关功能详解
Jul 03 #Python
在linux下实现 python 监控usb设备信号
Jul 03 #Python
django-allauth入门学习和使用详解
Jul 03 #Python
You might like
PHP6 先修班 JSON实例代码
2008/08/23 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
前端深入理解Typescript泛型概念
2020/03/09 Javascript
基于hashlib模块--加密(详解)
2017/06/21 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
Python内存读写操作示例
2018/07/18 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
python 异步async库的使用说明
2020/05/04 Python
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
如何设置Java的运行环境
2013/04/05 面试题
平面设计专业求职信
2014/08/09 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript