# -*- coding: utf-8 -*- #!/usr/bin/python import os import sys import time import json import redis import pymysql import datetime import pprint from string import Template from optparse import OptionParser import _utils global_redis_conf = _utils.getGlobalRedisConf() mysql_conf = _utils.getMysqlConf() optparser = OptionParser(usage="%prog [options]") optparser.add_option("-d", "--db", dest = "db", help = "guns,global,serverid1,serverid2,serverid8-serveid20") (options, args) = optparser.parse_args() _utils.checkDBOption(options.db) _utils.printDBOption(options.db) dbs = _utils.parseOption(options.db) _utils.info(dbs) def _importGunsDB(): _utils.importMysql(mysql_conf, 'guns', 'guns_admin.sql', _utils.CHAR_SET_UTF8MB4) def _importGlobalRedis(): _utils.importRedis(global_redis_conf, 'global redis', 'dump_6800.rdb') time.sleep(10) _utils.info('正在import _init_global_redis.script host:%s port:%d' % ( global_redis_conf['redis_host'], global_redis_conf['redis_port'])) cmdline = 'cat _init_global_redis.script | redis-cli -h %s -p %s' % ( global_redis_conf['redis_host'], global_redis_conf['redis_port'] ) _utils.info(cmdline) ret = _utils.runLocalCmd(cmdline) def _importGameDBAndRedis(server_id): conf = _utils.getGameConf(server_id) if server_id >= 16 and server_id <= 49: _utils.importMysql(conf, 'legend_' + str(server_id), 'legend_%d.sql' % (server_id), _utils.CHAR_SET_LATIN1) _utils.importMysql(conf, 'logger_' + str(server_id), 'logger_%d.sql' % (server_id), _utils.CHAR_SET_LATIN1, True) else: _utils.importMysql(conf, 'legend_' + str(server_id), 'legend_%d.sql' % (server_id), _utils.CHAR_SET_UTF8MB4) _utils.importMysql(conf, 'logger_' + str(server_id), 'logger_%d.sql' % (server_id), _utils.CHAR_SET_UTF8MB4, True) if server_id < 50: _utils.importRedis(conf, 'game redis', 'dump_%d.rdb' % (6800 + server_id)) else: _utils.importRedis(conf, 'game redis', 'rdb_%d.rdb' % (6800 + server_id)) for dbname in dbs: if dbname == 'guns': _importGunsDB() elif dbname == 'global': _importGlobalRedis() else: _importGameDBAndRedis(int(dbname))