def gatherAllJoinSrvs(tDates): ## 汇总所有参与合服服务器,传入日期作为参数 fName = DIRs["LOG_DIR"] + "%s_joinServers.py" % tDates saveLog.info("Gathering All JoinServers of %s" % tDates) with open(fName) as fObj: fc = fObj.read().strip() # if fc.startswith("{") and endswith("}"): joinSrvList = eval(fc) return joinSrvList
def checkMerge(srvFlag): ## 检查是否是 "已合服" 状态 sPlat, sId = srvFlag.split("_") cSql = "select iStatus from dbtx_plat_server where sPlatName='%s' and sPlatServer='%s';" % (sPlat, sId) dbo.execute(cSql) mgStatus = dbo.fetchone()['iStatus'] saveLog.info("Check %s merge_status is %s." % (srvFlag, str(mgStatus))) if str(mgStatus) == "-1": return True else: return False
def clearGameData(srvFlag, tSrvIp): ## 删除游戏数据 ## 通过机器人在远程IP上执行清除游戏数据脚本 saveLog.info("Clearing %s game data." % srvFlag) cCmd = "sh /data/sh/delete/dbtx_delete_game.clear.sh %s > /dev/null 2>&1 &" % srvFlag cDesc, cRemarks, cdcTime = "Delete Game Data.", "Delete Game Data.", getTimeNow() clSql = "insert into dbtx_cmd_execute (sCmd,iDependID,eType,sIP,sSSHport,iStatus,sDescription,sRemarks,dCreateTime,sUser,iTimeout) values (\ '%s','0','remote','%s','22','1','%s','%s','%s','autoMerge','600');" % (cCmd, tSrvIp, cDesc, cRemarks, cdcTime) dbo.execute(clSql) ## 清除SVN sAgent, sID = srvFlag.split("_") delCmd = "bash %s %s %s %s" % (DIRs['DEL_CRT_SCPT'], sAgent, sID, tSrvIp) if runCmd(delCmd) != 0: ## 如果命令返回值不为0,表示更新SVN失败 saveLog.error("%s %s %s, Del CRT file and SVN up error." % (sAgent, sID, tSrvIp)) return else: saveLog.info("%s %s %s, Del CRT file and SVN up success." % (sAgent, sID, tSrvIp))
Create Date: 2014-09-26 ''' import subprocess import sys import time from etc.config import dbPass, dbHost, dbPort, dbUser, dbName, DIRs from lib import saveLog from lib.dbtxMySQL import ClassDb reload(sys) sys.setdefaultencoding('utf-8') ## 设置默认编码 saveLog.set_logger(filename="%sdbtx_clear_MergeData.log" % DIRs['LOG_DIR']) ## 定义日志文件 saveLog.info("clear_MergeData starting....") dbo = ClassDb() ## 实例化 "数据库"类 dbo.connect(host=dbHost,port=dbPort,user=dbUser,passwd=dbPass,db=dbName,charset="utf8") ## 获取当前时间 def getTimeNow(timeFormat="%Y-%m-%d %X"): return time.strftime(timeFormat,time.localtime()) ## 获取当天时间 def getToday(timeFormat="%Y-%m-%d"): return time.strftime(timeFormat,time.localtime()) def runCmd(cmd, stdin=''):
Create Date: 2014-09-13 ''' import sys from etc.config import dbPass, dbHost, dbPort, dbUser, dbName, DIRs from lib import saveLog from lib.dbtxMySQL import ClassDb from lib.genConfig import GenerateCfg from lib.getSrvsWillBeMerg import SrvWillBeMg reload(sys) sys.setdefaultencoding('utf-8') ## 设置默认编码 saveLog.set_logger(filename="%sdbtx_Merge.log" % DIRs['LOG_DIR']) ## 定义日志文件 saveLog.info("dbtx_Merge rsync config files starting....") dbo = ClassDb() ## 实例化 "数据库"类 dbo.connect(host=dbHost,port=dbPort,user=dbUser,passwd=dbPass,db=dbName,charset="utf8") tasks = SrvWillBeMg(dbo) ## 初始化 "将要合服的服区"类 mg_tasks = tasks.getSrvs() ## 获取<合服计划>里今天内要合服的服区 #mg_tasks = ({'sPlatName': u'2323wan', 'dBeginTime': datetime.timedelta(0, 36000), 'dOpTime': None, 'sTargetPlat': u'2323wan', 'sComment': u'', 'sSIDRange': u'S1,S2,S3', 'sPrefix': u'', 'iOPerId': None, 'iOpLogId': None, 'dCreateTime': datetime.datetime(2014, 12, 16, 20, 21, 47), 'dEndTime': datetime.timedelta(0, 54000), 'iId': 1216L, 'sTargetSID': u'S1', 'iStatus': 1L, 'iType': 1L, 'dDate': datetime.date(2014, 12, 17)},) if mg_tasks: saveLog.info("There are %s Servers will be merged today." % len(mg_tasks)) saveLog.info("Start Merge Now...") for task in mg_tasks: sPlatName, sSIDRange, sTargetPlat, sTargetSID, iRecId = task['sPlatName'], task['sSIDRange'], task['sTargetPlat'], task['sTargetSID'], task['iId'] # if task['sPlatName'] == '2323wan':