61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
#!/usr/bin/python
|
|
# -*- coding:utf-8 _*-
|
|
"""
|
|
@author: pengtao
|
|
@file: create_conf.py
|
|
@time: 2020/04/24
|
|
"""
|
|
import redis
|
|
import json
|
|
import pdb
|
|
import natsort
|
|
from operator import itemgetter
|
|
|
|
redis_conf = {"host": "10.10.6.4", "port": "6379"}
|
|
|
|
|
|
def get_redis():
|
|
game_data = list()
|
|
r = redis.Redis(host=redis_conf['host'], port=redis_conf['port'], charset='utf8', db=redis_conf.get('db') or 0,
|
|
decode_responses=True)
|
|
key = 'game_info'
|
|
data = r.hgetall(key)
|
|
for key in data.keys():
|
|
recode = json.loads(data[key])
|
|
# "{\"areaId\":5002,\"combineTime\":946656000000,\"externalIp\":\"10.10.6.201\",
|
|
# \"followerId\":0,\"gameRedisPort\":6382,\"gameRedsiHost\":\"10.10.6.201\",
|
|
# \"hidden\":false,\"innerIp\":\"10.10.6.201\",\"openTime\":1586397600000,
|
|
# \"pid\":\"union01\",\"status\":1,\"tcpPort\":9002,\"webPort\":19002,
|
|
# \"worldId\":5002,\"worldName\":\"\xe5\x8f\x8c\xe7\xba\xbf1\xe6\x9c\x8d\"}"
|
|
if int(recode['areaId']) < 4000:
|
|
tt = dict()
|
|
tt['serverid'] = recode['areaId']
|
|
tt['ip'] = recode['innerIp']
|
|
tt['redis_port'] = recode['gameRedisPort']
|
|
game_data.append(tt)
|
|
return natsort.natsorted(game_data, key=itemgetter(*['ip']))
|
|
|
|
|
|
def write_csv(filename, data):
|
|
with open(filename, 'w') as f:
|
|
for line in data:
|
|
one_line = f"{line['serverid']}\t{line['ip']}\t{line['redis_port']}\n"
|
|
f.writelines(one_line)
|
|
|
|
|
|
def sort_dict(data_d, key):
|
|
import natsort
|
|
from operator import itemgetter
|
|
return natsort.natsorted(data_d, key=itemgetter(*[key]))
|
|
|
|
|
|
def create_conf_work():
|
|
data = get_redis()
|
|
new_data = sort_dict(data, 'serverid')
|
|
filename = "1009.csv"
|
|
write_csv(filename, new_data)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
create_conf_work()
|