Example #1
0
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
Example #2
0
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
Example #3
0
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))
Example #4
0
    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=''):
Example #5
0
    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':