def thread_check(): redis_obj = get_redis() data = redis_obj.hgetall('login_server') thread_list = [] for key, value in data.items(): t = threading.Thread(target=get_update, args=[key, value]) t.start() thread_list.append(t) for t in thread_list: t.join()
def thread_check(): redis_obj = get_redis() data = redis_obj.hgetall('game_server') data2 = redis_obj.hgetall('wargame_server') data.update(data2) thread_list = [] for key, value in data.items(): t = threading.Thread(target=get_gamestatus, args=[key, value]) t.start() thread_list.append(t) for t in thread_list: t.join()
def check(): res = {} redis_obj = get_redis() data = redis_obj.hgetall('login_server') pool = Mul_pool() pool_list = [] for key, value in data.items(): pool_list.append(pool.get_pool(get_version, key, value)) for item in pool_list: res.update(item.get()) pool.close() return res
def get_update(key, value, port=2208, user="******"): global res redis_obj = get_redis() ssh_obj = Ssh(value, 2208, "master", redis_obj.get(value)) try: ssh_obj.connect() result, err = ssh_obj.cmd( ''' grep 'Up' `ls -rt /ss/login/log/login*|tail -1` ''') update = result.strip() res[key] = update except Exception as e: res[key] = 'error' get_logger().error("pass is wrong") pass
def modify_iptables(cmd_str,key,value,port=2208,user="******"): global ans redis_obj=get_redis() ssh_obj=Ssh(value,2208,user,redis_obj.hget(user,value)) try: ssh_obj.connect() result,err=ssh_obj.cmd(cmd_str,sudo=True) if not err.strip(): ans[key]='sucess' else: print err except Exception as e: ans[key]='wrong' pass
def get_cron(key, value, port=2208, user="******"): global res redis_obj = get_redis() ssh_obj = Ssh(value, 2208, "master", redis_obj.get(value)) try: ssh_obj.connect() result, err = ssh_obj.cmd('''cat /etc/crontab|wc -l ''', sudo=True) wall_num = result.strip() res[key] = wall_num except Exception as e: res[key] = 'wrong' get_logger().error("pass is wrong") pass ssh_obj.close()
def get_version(key, value, port=2208, user="******"): ver = {} #global ver redis_obj = get_redis() ssh_obj = Ssh(value, port, user, redis_obj.get(value)) ssh_obj.connect() try: result, err = ssh_obj.cmd('''cat /ss/login/ver|grep name ''') version = result.strip().split()[2] ver[key] = version except Exception as e: ver[key] = 'error' pass ssh_obj.close() return ver
def modify_iptables(res, cmd_str, key, value, port=2208, user="******"): redis_obj = get_redis() ssh_obj = Ssh(value, 2208, user, redis_obj.hget(user, value)) try: ssh_obj.connect() result, err = ssh_obj.cmd(cmd_str, sudo=True) if not err.strip(): cmd_str = '''/etc/init.d/iptables restart ''' result, err = ssh_obj.cmd(cmd_str, sudo=True) if err.strip(): res[key] = err else: res[key] = result except Exception as e: res[key] = 'pass is wrong' pass
def get_gamewall(key,value,port=2208,user="******"): global res redis_obj=get_redis() ssh_obj=Ssh(value,2208,user,redis_obj.get(value)) try: ssh_obj.connect() result,err=ssh_obj.cmd('''cat /etc/sysconfig/iptables|grep '#'|wc -l ''',sudo=True) wall_num=result.strip() if wall_num == '2': res[key]='open' else: res[key]='close' except Exception as e: res[key]='wrong' get_logger().error("pass is wrong") pass
def get_gamestatus(key, value, port=2208, user="******"): redis_obj = get_redis() global res ssh_obj = Ssh(value, 2208, "master", redis_obj.get(value)) try: ssh_obj.connect() result, err = ssh_obj.cmd('ps -ef|grep server|grep -v grep|wc -l') result = result.strip() if result == '6': res[key] = 'ok' else: res[key] = 'error' except Exception as e: res[key] = 'pass wrong' get_logger().error("pass is wrong") pass ssh_obj.close()
def excute_iptables(argv): redis_obj = get_redis() p = Mul_pool() res = p.get_dict() if argv == 'gmoff': data = redis_obj.hgetall('smgame_server') for key, value in data.items(): p.get_pool(modify_iptables, res, game_inside_cmd, key, value) elif argv == 'gmon': data = redis_obj.hgetall('smgame_server') for key, value in data.items(): p.get_pool(modify_iptables, res, game_outer_cmd, key, value) elif argv == 'lgoff': data = redis_obj.hgetall('smlogin_server') for key, value in data.items(): p.get_pool(modify_iptables, res, login_inside_cmd, key, value) elif argv == 'lgon': data = redis_obj.hgetall('smlogin_server') for key, value in data.items(): p.get_pool(modify_iptables, res, login_outer_cmd, key, value) p.Close() get_logger('modify_iptables').info(res)
p.get_pool(modify_iptables, res, login_outer_cmd, key, value) p.Close() get_logger('modify_iptables').info(res) if __name__ == '__main__': prompt = '''please input your choice: 1: 所有游戏对内 2: 所有游戏对外 3: 所有登录对内 4: 所有登录对外 ''' argv = raw_input(prompt) p = Mul_pool() res = multiprocessing.Manager().dict() redis_obj = get_redis() if argv == '1': data = redis_obj.hgetall('smgame_server') for key, value in data.items(): result = modify_iptables(game_inside_cmd, key, value) elif argv == '2': data = redis_obj.hgetall('smgame_server') for key, value in data.items(): result = modify_iptables(game_outer_cmd, key, value) elif argv == '3': data = redis_obj.hgetall('smlogin_server') for key, value in data.items(): result = modify_iptables(login_inside_cmd, key, value) elif argv == '4': data = redis_obj.hgetall('smlogin_server') for key, value in data.items():