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中urllib模块用法实例详解
Nov 19 Python
Python的净值数据接口调用示例分享
Mar 15 Python
python中numpy基础学习及进行数组和矢量计算
Feb 12 Python
python实现简易版计算器
Jun 22 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
python字典改变value值方法总结
Jun 21 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
python如何实现递归转非递归
Feb 25 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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/05 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
解析Python中的二进制位运算符
2015/05/13 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
实例详解Python装饰器与闭包
2019/07/29 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python