>  기사  >  데이터 베이스  >  python mysql 短信告警

python mysql 短信告警

WBOY
WBOY원래의
2016-06-07 16:38:491177검색

最近发现用联通邮箱收邮件然后下发短信有点不靠谱,正好公司有短信网关,所以就写了一个python脚本,nagios调用脚本发送短信。 #!/usr/bin/env python#-*- coding: UTF-8 -*-'''author:NetsedCreated on 2013-8-26'''?import MySQLdbimport sys?PhoneNumber=

最近发现用联通邮箱收邮件然后下发短信有点不靠谱,正好公司有短信网关,所以就写了一个python脚本,nagios调用脚本发送短信。

#!/usr/bin/env python
#-*- coding: UTF-8 -*-
'''
author:Netsed
Created on 2013-8-26
'''
?
import MySQLdb
import sys
?
PhoneNumber=('13666666666',)
Message=sys.argv[1]
?
class Smsgate:
    def __init__(self,host="1.1.1.1",user="test",password="test",port=3306,charset="utf8",db="smsgate_cmpp"):
        self.host=host
        self.user=user
        self.password=password
        self.port=port
        self.charset=charset
        self.db=db
        try:
            self.conn=MySQLdb.connect(host=self.host,user=self.user,passwd=self.password,port=self.port,db=self.db)
            self.conn.set_character_set(self.charset)
            self.cur=self.conn.cursor()
        except MySQLdb.Error as e:
            print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
?
    def sms_insert(self,usernumber,messagecontent):
        sql="INSERT INTO `send_queue` (`id`, `spnumber`, `usernumber`, `serviceid`, `messagecoding`, \
                    `messagecontent`, `reserve`, `createtime`, `sendtime`, `fromserver`, `level`) VALUES \
                    (NULL, '11111', '%s', 'FREE', '15', '%s', '', now(), now(), \
                    'YANYAN', '4')" % (usernumber,messagecontent)
        try:
            self.cur.execute(sql)
            self.conn.commit()
        except:
            self.conn.rollback()
    def close(self):
        self.cur.close()
        self.conn.close()
?
if __name__ == '__main__':
    send = Smsgate()
    for i in PhoneNumber:
        send.sms_insert(i,Message)
    send.close()

简单说明一下,公司的短信网关使用起来比较简单,只要按照固定格式插入到mysql里面的短信队列表几个,短信网关程序会自动扫描队列。这个脚本只需要将内容插入到队列即可。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.