#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
##@package
|
#
|
# @todo: Ô¶³Ì¿ØÖÆ¿ª¹Ø·þ
|
#
|
# @author: Alee
|
# @date 2019-2-20 ÏÂÎç05:26:59
|
# @version 1.0
|
#
|
# @note: ÐèҪעÒâ ¡¶·þÎñÆ÷¿ØÖÆÌ¨¡· ÔÚ¿ª»úºóºÍ¹Ø·þºó±£³ÖÔËÐÐ״̬£»¿ª»ú¿ÉÒÔÉèÖÃËæ»úÆô¶¯£¬¹Ø·þºó¿ÉÒÔÌí¼ÓÃüÁîÐпªÆô£¨Ðècd¶¨Î»Ï·¾¶£©
|
# 1.¿ØÖÆÌ¨±»Á´½ÓµÄÇé¿ö ÎÞ·¨ÓÐÐ§ÖØÆô
|
#---------------------------------------------------------------------
|
import urllib
|
import urllib2
|
import md5
|
import os
|
import json
|
import datetime
|
|
g_fileLog = None
|
|
key = "slkfjlaskjf'lasjfjj1j4r1;2j;15r1-id-ig-k1r51-0id-sfgk1=-i1-m;az01m,-k-1-i4-14-1fmm1-"
|
port = 53009
|
|
# Ô¶³ÌCMDÃüÁî
|
def control(url, cmdstr):
|
sign = md5.md5("%s1234666%s"%(cmdstr, key)).hexdigest()
|
values = {'control' : cmdstr,
|
'sign' : sign }
|
try:
|
data = urllib.urlencode(values)
|
req = urllib2.Request("http://%s:%s/control/openandclose.php"%(url, port), data)
|
response = urllib2.urlopen(req, timeout=30)
|
the_page = response.read()
|
if not the_page:
|
WriteResult( "%s:ÔËÐÐʧ°Ü===="%url)
|
else:
|
WriteResult( "%s:ÔËÐгɹ¦ %s"%(url, the_page))
|
response.close()
|
except Exception, e:
|
WriteResult("%s:ÔËÐÐʧ°Ü£¬ Èç¹ûÊdz¬Ê±¿ÉÄÜÊÇÔËÐÐÂýÊÇʵ¼ÊÊdzɹ¦£¬ÇåÅäºÏÆäËû¹¤¾ß»òÕßÖ±½ÓÔ¶³Ì²é¿´ %s"%(url, str(e)))
|
#WriteResult("Èç¹ûÊdz¬Ê±¿ÉÄÜÊÇÔËÐÐÂýÊÇʵ¼ÊÊdzɹ¦£¬ÇåÅäºÏÆäËû¹¤¾ß»òÕßÖ±½ÓÔ¶³Ì²é¿´")
|
|
# Ö»ÓÃÓÚÊ×´ÎÍêÕû¿ª·þºóµÄ·þÎñÆ÷Æô¶¯²éѯ£¬ÒòΪµØÍ¼ÊÇ×îºó³õʼ»¯Íê±Ï£¬¿ÉÒÔ¸ù¾ÝµØÍ¼Êý¾ÝÅжÏÊÇ·ñÍêÕû¿ªÆô
|
# µØÍ¼¹Ø±Õºó²»»á¸Ä±äÊýÁ¿£¬¹ÊµØÍ¼ÓÐÒì³£¹Ø±Õ»áÁíÍâͨ¹ýÓʼþ֪ͨ
|
# Èç¹û¡¶·þÎñÆ÷¿ØÖÆÌ¨¡·ÖØÆôÔòÎÞ·¨È·ÈÏ¿ª·þÇé¿ö
|
def QueryMapInit(url):
|
try:
|
req = urllib2.Request("http://%s:%s/control/state.php?Type=QueryMapOK"%(url, port))
|
response = urllib2.urlopen(req, timeout=5)
|
the_page = response.read()
|
WriteResult("²éѯ·þÎñÆ÷ %s: %s"%(url, the_page))
|
response.close()
|
except Exception, e:
|
WriteResult("%s:ÔËÐÐʧ°Ü%s"%(url, str(e)))
|
|
|
# ÖØ¶ÁÅäÖ㬶ÔÓ¦GMkey
|
def ReloadConfig(pushurl):
|
# ĬÈ϶˿Ú80£¬ÓÐÐèÒªÖ±½Ó¸ÄµØÖ·
|
try:
|
# GMÍÆË͵ØÖ·
|
gmurl = "http://%s/Server/Tool.php"%(pushurl)
|
gmkey = "Y25GVFoyOVFjbWtyTDJJckt5OU1OQ3RtUFQxPV"
|
if not gmkey or not gmurl:
|
return
|
|
pack_data = {};
|
pack_data["pack_type"] = "GMT_ReloadConfig"
|
|
pack_data["key"] = gmkey;
|
pack_data['coding'] = "utf8";
|
|
#ʹÓÃkey¼ÓÃÜ
|
pack_data_dict = json.dumps(pack_data)
|
sign = md5.md5(pack_data_dict+gmkey).hexdigest()
|
post = {}
|
post['pack'] = pack_data_dict;
|
post['sign'] = sign;
|
result = urllib2.urlopen(gmurl, urllib.urlencode(post), 10)
|
|
content = result.read()
|
result.close()
|
resultDict = json.loads( content)
|
if resultDict["ResultType"] == 0:
|
WriteResult( pushurl + " ÖØ¶Á³É¹¦£¡£¡£¡")
|
return True
|
WriteResult( pushurl+ " ÖØ¶Áʧ°Ü")
|
return False
|
except Exception, e:
|
WriteResult( pushurl+ " ÖØ¶Áʧ°Ü" + str(e))
|
return False
|
|
# ÖØ¶ÁPymongo£¬¶ÔÓ¦GMkey
|
def ReloadPymongo(pushurl):
|
# ĬÈ϶˿Ú80£¬ÓÐÐèÒªÖ±½Ó¸ÄµØÖ·
|
try:
|
# GMÍÆË͵ØÖ·
|
gmurl = "http://%s/Server/Tool.php"%(pushurl)
|
gmkey = "2" # ¸ß¼¶key
|
if not gmkey or not gmurl:
|
return
|
|
pack_data = {};
|
pack_data["pack_type"] = "GMT_ReloadPymongo"
|
|
pack_data["key"] = gmkey;
|
pack_data['coding'] = "utf8";
|
|
#ʹÓÃkey¼ÓÃÜ
|
pack_data_dict = json.dumps(pack_data)
|
sign = md5.md5(pack_data_dict+gmkey).hexdigest()
|
post = {}
|
post['pack'] = pack_data_dict;
|
post['sign'] = sign;
|
result = urllib2.urlopen(gmurl, urllib.urlencode(post), 10)
|
|
content = result.read()
|
result.close()
|
resultDict = json.loads( content)
|
if resultDict.get("ResultType") == 0:
|
WriteResult( pushurl + " ÖØ¶Á³É¹¦£¡£¡£¡")
|
return True
|
WriteResult( pushurl+ " ÖØ¶Áʧ°Ü! ret:%s" % content)
|
return False
|
except Exception, e:
|
WriteResult( pushurl+ " ÖØ¶Áʧ°Ü! e:" + str(e))
|
return False
|
|
def WriteResult(msg):
|
global g_fileLog
|
if not g_fileLog:
|
g_fileLog = open(r".\controlLog.txt", "a")
|
g_fileLog.write(str(datetime.datetime.today()) + '\t' + msg + "\n")
|
print msg
|
return
|
|
#control("vm-mobilecom", "open")
|
#control("vm-mobilecom", "close")
|
|
if __name__=='__main__':
|
# ·þÎñÆ÷Áбí
|
f = open(r'.\qufu.txt','r')
|
|
result = raw_input("ÇëÊäÈë×Öĸ k.¿ª·þ g.¹Ø·þ c.²é¿´µØÍ¼ÔËÐÐÇé¿ö£¨Ê׿ª·þ£© r.ÖØ¶ÁÅäÖà rpym.ÖØ¶Ápymongo")
|
result = result.strip()
|
WriteResult("==¿ªÊ¼Ö´ÐÐÃüÁî:%s"%result)
|
if result == 'k':
|
for line in f.readlines():
|
control(line.strip(), "open")
|
elif result == 'g':
|
for line in f.readlines():
|
control(line.strip(), "close")
|
elif result == 'c':
|
for line in f.readlines():
|
QueryMapInit(line.strip())
|
elif result == 'r':
|
for line in f.readlines():
|
ReloadConfig(line.strip())
|
elif result == 'rpym':
|
for line in f.readlines():
|
ReloadPymongo(line.strip())
|
else:
|
WriteResult("==Ö´ÐдíÎóµÄÃüÁî:%s"%result)
|
f.close()
|
|
if g_fileLog:
|
g_fileLog.close()
|
|
os.system('pause')
|