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中使用PIPE操作Linux管道
Feb 04 Python
简述Python中的面向对象编程的概念
Apr 27 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
图解Python变量与赋值
Apr 03 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
python 常见的反爬虫策略
Sep 27 Python
python 元组和列表的区别
Dec 30 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 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
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python 字符串定义
2009/09/25 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
详解Django中的过滤器
2015/07/16 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
热爱祖国的演讲稿
2014/05/04 职场文书
小学教师师德整改措施
2014/09/29 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
荆州古城导游词
2015/02/06 职场文书
《所见》教学反思
2016/02/23 职场文书