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的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
Python实现多并发访问网站功能示例
Jun 19 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
PyQt5显示GIF图片的方法
Jun 17 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
Aug 22 Python
python 动态迁移solr数据过程解析
Sep 04 Python
python如何使用Redis构建分布式锁
Jan 16 Python
Django实现列表页商品数据返回教程
Apr 03 Python
Python调用Redis的示例代码
Nov 24 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 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
处理php自动反斜杠的函数代码
2010/01/05 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
浅析php header 跳转
2013/06/17 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
javascript每日必学之循环
2016/02/19 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
python自动发送邮件脚本
2018/06/20 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
python mysql断开重连的实现方法
2019/07/26 Python
详解Python3 pandas.merge用法
2019/09/05 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
Python实现代码块儿折叠
2020/04/15 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
英语自荐信常用语句
2013/12/13 职场文书
档案室主任岗位职责
2014/02/12 职场文书
社会调查研究计划书
2014/05/01 职场文书
公司总经理任命书
2014/06/05 职场文书
庆六一活动总结
2014/08/29 职场文书
音乐教师个人总结
2015/02/06 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
电力工程合作意向书
2015/05/11 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
Django框架中视图的用法
2022/06/10 Python