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 文件读写操作实例详解
Mar 12 Python
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
python实现bucket排序算法实例分析
May 04 Python
老生常谈Python基础之字符编码
Jun 14 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
python 绘制拟合曲线并加指定点标识的实现
Jul 10 Python
Python 3 判断2个字典相同
Aug 06 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 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
解决CodeIgniter伪静态失效
2014/06/09 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
简单的自定义php模板引擎
2016/08/26 PHP
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
台湾森森购物网:U-mall
2017/10/16 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
机关党建工作汇报材料
2014/08/20 职场文书
领导干部保密承诺书
2014/08/30 职场文书
个人合伙协议书范本
2014/10/14 职场文书
工程款申请报告
2015/05/15 职场文书
新入职员工工作总结
2015/10/15 职场文书
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS
MySQL数据库查询之多表查询总结
2022/08/05 MySQL