飞信系统升级公告(2010.11.26)
发布时间:2010-11-25尊敬的用户:
为了给您提供更完善的服务,系统于2010年11月26日凌晨0:00-3:00进行升级操作。在升级期间,飞信客户端无法使用。
我们会在此时段内尽快完成升级操作恢复至业务能够正常使用。对此给您带来的不便我们深表歉意,再次感谢您对此次升级的支持和谅解。期待您一如既往的关注飞信!
飞信官方网站
2010-11-25
由于飞信版本升级,pyfetion 再次无法使用,有的开源版本需要输入验证码。经过http://code.google.com/p/pytool 的努力 cocobear.cn 更新了版本,不需要加载RSA_Encrypt.so 模块了·直接用源码就可以·在cocobear.cn的版本上我稍微修改了下,让其支持nagios报警

1.下载修改飞信:

nagios $> svn checkout http://pytool.googlecode.com/svn/trunk/ pytool-read-only
nagios $> cd pytool-read-only
nagios $> cd PyFetion
nagios $> vim fetion.py
#在 385 行处修改:
def main(argv=None):

    #mobile_no = raw_input(toEcho("手机号:"))
    mobile_no = argv[1]       #手机号
    #passwd = getpass(toEcho("口  令:"))
    passwd = argv[2]           #飞信密码
    mes = argv[3]                #发送消息
    tohe = argv[4]               #其他人手机号

# 找到412 行后修改:
      phone.send_sms(toUTF8(mes))
        phone.send_sms(toUTF8(mes),tohe)
        printl("发送成功")
        #printl("登陆成功")
        return 1
#找到最后一行 443行,修改:
     #sys.exit(main())
     sys.exit(main(sys.argv))

修改完后 保存退出

2.测试发信息。

nagios $> python fetion.py 1361103xxxx password test none
## 命令为:手机号 飞信密码 发送信息  别人手机号,由于我只给自己发信息,所以我这里参数为none 不给别人发

3.创建脚本方便nagios发送报警

nagios $> mkdir -p /opt/fetion
nagios $> cd /pytool-read-only/PyFetion
nagios $> mv * /opt/fetion
nagios $> chown nagios.nagios /opt/fetion -R   #赋予nagios可执行权限
nagios $> cd /usr/local/nagios/libexec
nagios $> vim sms.sh
#!/bin/bash
# script name : sms
# qq: 277057817
# url:www.nginxs.com
if [ $# -ne 5 ];then
            phone="$1"
            passwd="$2"
            msg="$3"
            sendto="$4"
            /usr/bin/python /opt/fetion/fetion.py "$phone" "$passwd" "$msg" "$sendto"
fi
nagios $> ./sms.sh 1361103xxxx password test none

4.修改templates.cfg 添加:

nagios $> vim /usr/local/nagios/etc/objects/templates.cfg
define contact{
name                            generic-contact
service_notification_period     24x7
host_notification_period        24x7
service_notification_options    w,u,c,r,f,s
host_notification_options       d,u,r,f,s
service_notification_commands   notify-service-by-email,notify-service-by-sms
host_notification_commands      notify-host-by-email,notify-host-by-sms
register                        0
}

5.修改commands.cfg 添加:

nagios $> vim /usr/local/nagios/etc/objects/commands.cfg

 

define command{
command_name    notify-host-by-sms
command_line    $USER1$/sms.sh 1361103xxxx password  "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'" 1380010XXXX
}

define command{
command_name    notify-service-by-sms
command_line    $USER1$/sms.sh 1361103xxxx password  "Host $HOSTSTATE$ Address $HOSTADDRESS$ Service $SERVICEDESC$ State $SERVICESTATE$ on $TIME$"  1380010XXXX
}

6.下面是我修改后的版本以及脚本

pyfetion for nagios 飞信

sms.tar.gz

PS:记得如果自己修改fetion.py 的时候,记得tab键,和空格键的区别,pytion 不像shell一样不区分tab和空格键的。
pyfetion 全是用的空格,所以修改 fetion.py的时候要用空格,不要用tab..