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之关于循环的小伎俩
Oct 02 Python
python实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
浅谈django的render函数的参数问题
Oct 16 Python
Python Series从0开始索引的方法
Nov 06 Python
在PyCharm下使用 ipython 交互式编程的方法
Jan 17 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
python 求某条线上特定x值或y值的点坐标方法
Jul 09 Python
django页面跳转问题及注意事项
Jul 18 Python
Python列表的切片实例讲解
Aug 20 Python
解决pip install psycopg2出错问题
Jul 09 Python
Python 测试框架unittest和pytest的优劣
Sep 26 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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
php数组转成json格式的方法
2015/03/09 PHP
php+mysql实现无限级分类
2015/11/11 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
初学python数组的处理代码
2011/01/04 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
学习python需要有编程基础吗
2020/06/02 Python
什么是Python中的匿名函数
2020/06/02 Python
openCV提取图像中的矩形区域
2020/07/21 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
企业管理培训感言
2014/01/27 职场文书
团代会闭幕词
2015/01/28 职场文书
大班上学期个人总结
2015/02/13 职场文书
债务纠纷代理词
2015/05/25 职场文书
为自己工作观后感
2015/06/11 职场文书
优质服务标语口号
2015/12/26 职场文书
python解析照片拍摄时间进行图片整理
2022/07/23 Python