2020-03-03 11:05:09 +08:00

147 lines
4.8 KiB
Python

# -*- 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))