本文共 2848 字,大约阅读时间需要 9 分钟。
系统升级公告(2010.11.26)
发布时间:2010-11-25尊敬的用户: 为了给您提供更完善的服务,系统于2010年11月26日凌晨0:00-3:00进行升级操作。在升级期间,飞信客户端无法使用。 我们会在此时段内尽快完成升级操作恢复至业务能够正常使用。对此给您带来的不便我们深表歉意,再次感谢您对此次升级的支持和谅解。期待您一如既往的关注飞信! 飞信官方网站 2010-11-25 由于飞信版本升级, 再次无法使用,有的开源版本需要输入验证码。经过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-onlynagios $> cd pytool-read-onlynagios $> 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/fetionnagios $> cd /pytool-read-only/PyFetionnagios $> mv * /opt/fetionnagios $> 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.comif [ $# -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-contactservice_notification_period 24x7host_notification_period 24x7service_notification_options w,u,c,r,f,shost_notification_options d,u,r,f,sservice_notification_commands notify-service-by-email,notify-service-by-smshost_notification_commands notify-host-by-email,notify-host-by-smsregister 0}
5.修改commands.cfg 添加:
nagios $> vim /usr/local/nagios/etc/objects/commands.cfg
define command{command_name notify-host-by-smscommand_line $USER1$/sms.sh 1361103xxxx password "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$LONGDATETIME$'" 1380010XXXX}define command{command_name notify-service-by-smscommand_line $USER1$/sms.sh 1361103xxxx password "Host $HOSTSTATE$ Address $HOSTADDRESS$ Service $SERVICEDESC$ State $SERVICESTATE$ on $TIME$" 1380010XXXX}
6.下面是我修改后的版本以及脚本
pyfetion for nagios 飞信
PS:记得如果自己修改fetion.py 的时候,记得tab键,和空格键的区别,pytion 不像shell一样不区分tab和空格键的。
pyfetion 全是用的空格,所以修改 fetion.py的时候要用空格,不要用tab..本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/436140,如需转载请自行联系原作者