#!/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')  
 |