飞信系统升级公告(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..