zabbix发送短信脚本_python实现

时间:2022-01-26 00:16:19

使用方法

./sendSMS.py PHONE_NUMBER args_2 SMS_MSG
  • 接收参数输入
    参数一: 接收手机号(zabbix传来的第1个参数,报警接收手机号),第一个参数可以对比发送邮件的脚本
    参数二: 短信主题(zabbix传来的第2个参数,报警主题),在命令行测试必须输入,用来占位,脚本中并不获取这个参数
    参数三: 短信内容(zabbix传来的第3个参数,报警内容)

  • 手动调试方法

python sendSMS.py *********** argv2 "报警测试"

关于命令行测试的另外一种方式

  • 使用shell自带的curl来测试

    • GET

    curl http://HOST/path/to/path/webapi/sendSMS/?phone=18101111253&smsText='SMS test'

    • POST

    curl -d phone=18101111253 -d smsText='SMS test' http://HOST/path/to/path/webapi/sendSMS

代码

#!/usr/bin/env python
#-*- coding: utf8 -*-

import sys
import requests

def sendsms(key, phone, message):
"""
发送短信
"""

values = {'Key': key,
'smsMob': phone,
'smsText': message
}

host = '192.168.0.07'
post_url = 'http://' + host + '/path/to/path/webapi/sendSMS'
try:
req= requests.post(url=post_url, data=values)
print req.content
except Exception, e:
print e

if __name__ == '__main__':
key = '712ab57ec021f8f05f862652c95f3344'
phone = sys.argv[1]
# subject = sys.argv[2]
message = sys.argv[3]

sendsms(key, phone, message)