def export_db(game_servers, export_type='data'):
test_server_info = get_test_server_info(GAME)
check_game_servers(game_servers, test_server_info)
locate_game_servers = transform_gameservers(game_servers, test_server_info)
ips = locate_game_servers.keys()
ftp_path = 'download/{}/{}'.format(GAME, TIMESTAMP)
local_root_path = '/app/online/{}'.format(ftp_path)
@hosts(ips)
def _export_db():
for game_server in locate_game_servers[env.host_string]:
local_path = '{}/{}/'.format(local_root_path, game_server)
local('su - astd -c "mkdir -p {}"'.format(local_path))
run('mkdir -p {}'.format(REMOTE_DIR))
sql_name = '{}.sql.rb{}'.format(game_server, TIMESTAMP)
if export_type == 'no-data':
run('pandora --dump -R --opt -d {} >{}/{}'.format(game_server, REMOTE_DIR, sql_name))
elif export_type == 'data':
run('pandora --dump -R --opt {} >{}/{}'.format(game_server, REMOTE_DIR, sql_name))
with cd(REMOTE_DIR):
run('tar zcf {0}.tgz {0}'.format(sql_name))
target_file = '{}/{}.tgz'.format(REMOTE_DIR, sql_name)
get(target_file, local_path)
local('chown -R astd.astd {}'.format(local_root_path))
print('Start dumping db...')
sys.stdout.flush()
execute(_export_db)
print('Downloaded db to FTP: {}/'.format(ftp_path))
评论列表
文章目录