import socket, time
def connect(ip):
    s = socket.create_connection((ip, 6379), 5); s.settimeout(6)
    def cmd(*a):
        p = b'*%d\r\n' % len(a)
        for x in a:
            x = x.encode() if isinstance(x, str) else x
            p += b'$%d\r\n%s\r\n' % (len(x), x)
        s.sendall(p); time.sleep(0.5)
        o = b''
        try:
            while True:
                d = s.recv(65536)
                if not d: break
                o += d
                if len(d) < 65536: break
        except socket.timeout: pass
        return o.decode(errors='replace')
    return s, cmd
s, cmd = connect('10.24.60.46')
cmd('CONFIG', 'SET', 'dbfilename', 'rt.so')
for m in ['10.24.18.64', '10.24.18.63', '10.24.16.124', '10.24.16.123', '10.143.0.18']:
    cmd('REPLICAOF', m, '6389')
    time.sleep(3)
    info = cmd('INFO', 'replication')
    status = [l for l in info.split('\r\n') if 'master_link_status' in l or 'master_sync_in_progress' in l]
    print(m, '->', ' '.join(status))
s.close()
