python使用免费短信Twilio报警
最近发现了个免费的短信服务Twilio,并且发送速度还很快,试用了一下感觉很不错,故推授给大家.
Twilio是一个SMS网关服务,可以通过程序发送短信.虽然试用版每月发送短信数量有限制,但免费试用没有期限.
Twilio不是唯一的SMS网关服务,也可以在线搜索free sms gateway、python sms api,甚至twilio alternatives,寻找替代服务.
系统:centos 7(64位)
软件环境:python 2.7
1.注册Twilio账号
这里我就不说怎么注册了,按照网页流程走就可以了,(实在不会的可以看这篇文章https://www.jishux.com/plus/view-740114-1.html),只是需要两个信息:你的账户ACCOUNT SID和AUTH TOKEN,在登录Twilio账户时,可以在Dashboard页面上找到这些信息.从python程序登录时,这些值将作为你的Twilio用户名和密码.
2.安装python twilio模块
pip install twilio
3.使用
cat test.py
from twilio.rest import Client
# put your own credentials here
account_sid = "ACdxxxxxxxxxxxxxxxxxxxx"
auth_token = "5eaxxxxxxxxxxxxxxxxx"
client = Client(account_sid, auth_token)
client.messages.create(
to="+86136xxxxxxxx", #自己的手机号码
from_="+1831xxxxx", #在网站上申请的手机码,只能用这个号码发信息
body="hello!this is test.")
执行:
python test.py
看自己手机是否有收到短信,如果没有收到请检查是否sid和token填写错误,或者也可以先在网页上进行短信发送测试.
4.对服务器上mysql进程进行监控并短信报警
cat sms.py #先写个sms接口
#coding: utf-8 from twilio.rest import Client def sms(t): account_sid = "ACdxxxxxxxxxxxxxxxxxxxx" auth_token = "5eaxxxxxxxxxxxxxxxxx" client = Client(account_sid, auth_token) message = client.messages.create( to="+86136xxxxxxxx", from_="+183xxxxxxxx", body=t.decode("utf-8")) print(message.sid)
cat monitor-mysql.py #mysql进程监控
#!/usr/bin/env python import os import socket import time from sms import sms import logging import time process = "/data/mysql/mysql.pid" os.system("ps -ef|grep mysql|grep -v grep>%s" % process) if not(os.path.getsize(process)): sms("The mysql process is dead.") else: print("running")
直接执行:
python monitor-mysql.py
好了,这样你对mysql进程进行了监控,并能在mysql挂了的时候进行短信报警.
评论: