redis-shake工具
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
2.6 KiB

import os
import getopt
import sys
def usage():
print('|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|')
print('| Usage: ./run_direct.py --src=source_redis_address --srcPasswd=source_password --srcType=source_type(default is \'standalone\') --dst=target_redis_address --dstPasswd=target_redis_address --dstType=target_redis_address(default is \'standalone\') |')
print('|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|')
print('| Like : ./run_direct.py --src=10.1.1.1:3456 --srcPasswd=Test123456 --srcType=standalone --dst=20.1.1.2:15678 --dstPasswd=Test123456 --dstType=standalone |')
print('| Like : ./run_direct.py --src=10.1.1.1:3456;10.1.1.2:5678;10.1.1.3:7890 --srcPasswd=Test123456 --srcType=standalone --dst=20.1.1.1:13456;20.1.1.2:15678 --dstPasswd=Test123456 --dstType=proxy |')
print('|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|')
exit(0)
if __name__ == "__main__":
opts, args = getopt.getopt(sys.argv[1:], "hs:a:t:d:p:e:", ["help", "src=", "srcPasswd=", "srcType=", "dst=", "dstPasswd=", "dstType="])
if len(opts) == 0:
usage()
mp = {}
for key, value in opts:
if key in ("-h", "--help"):
usage()
sys.exit()
if key in ("-s", "--src"):
mp['source.address'] = value
if key in ("-a", "--srcPasswd"):
mp['source.password_raw'] = value
if key in ("-t", "--srcType"):
mp['source.type'] = value
if key in ("-d", "--dst"):
mp['target.address'] = value
if key in ("-p", "--dstPasswd"):
mp['target.password_raw'] = value
if key in ("-e", "--dstType"):
mp['target.type'] = value
mp['id'] = 'redis-shake'
mp['source.type'] = 'standalone' if 'source.type' not in mp else mp['source.type']
mp['target.type'] = 'standalone' if 'target.type' not in mp else mp['target.type']
mp['source.auth_type'] = 'auth'
mp['target.auth_type'] = 'auth'
mp['rewrite'] = 'true'
mp['log.file'] = 'redis-shake.log'
name = "run_direct.conf"
f = open(name, "w+")
for key, val in mp.items():
f.writelines('%s = %s\n' % (key, val))
f.close()
os.system("./redis-shake.linux -type=sync -conf=%s" % name)
#os.system("./redis-shake.darwin -type=sync -conf=%s" % name)