# -*- 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 = options.db.split(',') def _importGunsDB(): print('正在删除guns数据库 host:%s port:%d' % (mysql_conf['db_host'], mysql_conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s -e"drop database if exists %s"' % ( mysql_conf['db_host'], mysql_conf['db_user'], mysql_conf['db_passwd'], 'guns', ) print(cmdline) ret = os.system(cmdline) print('正在创建guns数据库 host:%s port:%d' % (mysql_conf['db_host'], mysql_conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s -e"create database %s"' % ( mysql_conf['db_host'], mysql_conf['db_user'], mysql_conf['db_passwd'], 'guns', ) print(cmdline) ret = os.system(cmdline) print('正在导入guns数据 host:%s port:%d' % (mysql_conf['db_host'], mysql_conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s %s -e"source %s"' % ( mysql_conf['db_host'], mysql_conf['db_user'], mysql_conf['db_passwd'], 'guns', '../data/mysql/guns.sql' ) print(cmdline) ret = os.system(cmdline) def _importGlobalRedis(): print('正在删除global redis host:%s port:%d' % (global_redis_conf['redis_host'], global_redis_conf['redis_port'])) cmdline = 'redis-cli -h %s -p %s -n 0 flushdb' % ( global_redis_conf['redis_host'], global_redis_conf['redis_port'] ) print(cmdline) ret = os.system(cmdline) print('正在复制global.rdb文件到 host:%s' % (global_redis_conf['redis_host'])) cmdline = 'scp ../data/redis/global.rdb root@%s:/data/logs/redis/dump_6379.rdb' % ( global_redis_conf['redis_host'], ) print(cmdline) ret = os.system(cmdline) print('正在导入dump_6379.rdb' % ()) cmdline = 'ssh %s "redis-server /etc/redis/redis_6379.conf"' % ( global_redis_conf['redis_host'], ) print(cmdline) ret = os.system(cmdline) def _importGameDBAndRedis(server_id): conf = _utils.getGameConf(server_id) print('正在删除legend_%d数据库 host:%s port:%d' % (server_id, conf['db_host'], conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s -e"drop database if exists %s"' % ( conf['db_host'], conf['db_user'], conf['db_passwd'], 'legend_' + str(server_id), ) print(cmdline) ret = os.system(cmdline) print('正在创建legend_%d数据库 host:%s port:%d' % (server_id, conf['db_host'], conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s -e"create database %s"' % ( conf['db_host'], conf['db_user'], conf['db_passwd'], 'legend_' + str(server_id), ) print(cmdline) ret = os.system(cmdline) print('正在导入legend_%d数据 host:%s port:%d' % (server_id, conf['db_host'], conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s %s -e"source %s"' % ( conf['db_host'], conf['db_user'], conf['db_passwd'], 'legend_' + str(server_id), '../data/mysql/legend_' + str(server_id) + '.sql' ) print(cmdline) ret = os.system(cmdline) print('正在删除logger_%d数据库 host:%s port:%d' % (server_id, conf['db_host'], conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s -e"drop database if exists %s"' % ( conf['db_host'], conf['db_user'], conf['db_passwd'], 'logger_' + str(server_id), ) print(cmdline) ret = os.system(cmdline) print('正在创建logger_%d数据库 host:%s port:%d' % (server_id, conf['db_host'], conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s -e"create database %s"' % ( conf['db_host'], conf['db_user'], conf['db_passwd'], 'logger_' + str(server_id), ) print(cmdline) ret = os.system(cmdline) print('正在导入logger_%d数据 host:%s port:%d' % (server_id, conf['db_host'], conf['db_port'])) cmdline = 'mysql -h%s -u%s -p%s %s -e"source %s"' % ( conf['db_host'], conf['db_user'], conf['db_passwd'], 'logger_' + str(server_id), '../data/mysql/logger_' + str(server_id) + '.sql' ) print(cmdline) ret = os.system(cmdline) for dbname in dbs: if dbname == 'guns': _importGunsDB() elif dbname == 'global': _importGlobalRedis() else: _importGameDBAndRedis(int(dbname))