Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1102492
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: Python/Ruby

2011-09-14 16:12:47

最新编辑,feixin那个完蛋了加了验证码不能登录啦feixin改版啦!

之前想用http post发飞信的,今天试了下发现这里根本发了以后提示已经再队列以后就没下文了
上面两个连接都试了完全不行...手机收不到

找到下面这个模拟飞信登陆的的方式给已经绑定手机飞信账号发短信。
代码也简单几十行,拿来稍微改了下直接可以用。


比研究飞信协议简单多啦-v-
上面那个是应该是从这个python脚本改成的shell版本


写这脚本是因为web的连接池跑几天后会出现取不出连接的故障,代码上还没找到问题,只能暂时在出现连接池无法取出连接的时候重启jboss解决
叫程序员写了个简单的jsp去连接池取连接,成功返回0失败返回1
下面就是我的轮询脚本,成功的时候写日志记录oracle连接池的打开数量,超过min连接数(就是LinkPollLong这个变量)的时候把所有连接打印出来(因为之前有出现过某个功能不走连接池自己开连接导致大量time_wait的问题)
注意,在crontab里会少很多环境变量,所以要启动jboss得在python里加上环境变量

附注:N个礼拜后终于找到错误的位置了,原来没走连接池的时候用的jdbc,释放连接池连接的方法都是关jdbc的。
后来换成连接池了还是在用jdbc的方法在关所以所有调用这个方法来关闭的连接都没关。

  1. #! /usr/bin/python
  2. import urllib,urllib2,cookielib
  3. import os,sys,time
  4. import re

  5. def fetion(msg):
  6.     url_login = ''
  7.     url_logout = ''
  8.     url_msg = ''
  9.     user = 'phone num'
  10.     password = 'pass'
  11.     loginstatus = '4'
  12.     arg_t = ''
  13.     cj = cookielib.LWPCookieJar()
  14.     opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
  15.     urllib2.install_opener(opener)
  16.     args = {'pass':password, 'm':user,'loginstatus':loginstatus}
  17.     print 'Logining...'
  18.     req = urllib2.Request(url_login, urllib.urlencode(args))
  19.     jump = opener.open(req)
  20.     page = jump.read();
  21.     url = re.compile(r').findall(page)[0]
  22.     arg_t = re.compile(r't=(\d*)').findall(page)[0]
  23.     if url == '/im/login/login.action':
  24.         print "error"
  25.         return
  26.     sendmsg = urllib2.Request(url_msg, urllib.urlencode({'msg':msg}))
  27.     finish = urllib2.urlopen(sendmsg)

  28.     if finish.geturl == '' :
  29.         print 'Send Failed!'
  30.     else:
  31.         print 'Send Successfully'
  32.     logout = urllib2.Request(url_logout + arg_t)
  33.     response = urllib2.urlopen(logout)
  34. # print 'Logout Successfully!'
  35.     #print response.read().decode('utf-8').encode('gbk')


  36. def tryOraclePoll():
  37.     req = urllib2.Request('') #php or aspx
  38.     try:
  39.         response = urllib2.urlopen(req)
  40.         Status = response.read()
  41.         response.close()
  42.         return int(Status)
  43.     except:
  44.         return 2



  45. def LogOra(logType=1,LinkPollLong=1):
  46.     command = '/bin/netstat -nat'
  47.     now = time.strftime('%Y-%m-%d %H:%M',time.localtime())
  48.     oraMark = re.compile(':1521 ')
  49.     f = open('/var/log/netlink.log','a')
  50.     if logType == 0:
  51.         output = os.popen(command)
  52.         netList = [ line for line in output.readlines() if oraMark.search(line)]
  53.         logdata = "==================Number of connections is [%d]\tat %s======================\n" % (len(netList),now)
  54.         if len(netList) > LinkPollLong:
  55.             f.write(logdata)
  56.             f.writelines(netList)
  57.     elif logType == 1:
  58.         f.write("+++++++++++++++++++++++++jboss restart\tat [%s]+++++++++++++++++++++++++++++\n" % now)
  59.     else:
  60.         f.write("-------------------------serve is down\tat [%s]------------------------------\n" % now)
  61.     f.write('\n\n')
  62.     f.close()


  63. def restartJboss():
  64.     os.putenv('JAVA_HOME','/opt/jdk1.6.0_07')
  65.     os.putenv('JBOSS_HOME','/opt/jboss-4.2.3.GA')
  66.     os.putenv('JRE_HOME','/opt/jdk1.6.0_07/jre')
  67.     os.putenv('PATH','/opt/jdk1.6.0_07/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/opt/jdk1.6.0_07/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin')
  68.     os.putenv('CLASSPATH','.:/opt/jdk1.6.0_07/lib:/opt/jdk1.6.0_07/jre/lib')
  69. # os.system('/bin/env')
  70.     os.system('/opt/jboss-4.2.3.GA/bin/shutdown.sh -S')
  71.     time.sleep(25)
  72. #    os.system('killall -9 java')
  73.     os.system('(/opt/jboss-4.2.3.GA/bin/run.sh &)')
  74.     time.sleep(25)
  75.     Status = tryOraclePoll()
  76.     if Status != 0:
  77.         fetion("up up!!!server down!")
  78.         return 2
  79.     return 1

  80. if __name__ == "__main__":
  81.     Status = tryOraclePoll()
  82.     if Status != 0:
  83.         Status = restartJboss()
  84.     LogOra(Status,100)
阅读(1631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~