diff --git a/confluent_client/bin/nodersync b/confluent_client/bin/nodersync index ba95662c..8d316bab 100755 --- a/confluent_client/bin/nodersync +++ b/confluent_client/bin/nodersync @@ -48,6 +48,8 @@ def run(): 'prompting if over the threshold') argparser.add_option('-l', '--loginname', type='str', help='Username to use when connecting, defaults to current user.') + argparser.add_option('-s', '--substitutename', + help='Use a different name other than the nodename for rsync') argparser.add_option('-f', '-c', '--count', type='int', default=168, help='Number of nodes to concurrently rsync') # among other things, FD_SETSIZE limits. Besides, spawning too many @@ -63,10 +65,20 @@ def run(): c = client.Command() cmdstr = ' '.join(args[:-1]) cmdstr = 'rsync -av --info=progress2 ' + cmdstr - if options.loginname: - cmdstr += ' {}@'.format(options.loginname) + '{node}:' + targpath + + targname = options.substitutename + if targname and '{' in targname: + targname = targname + ':' + elif targname: + targname = '{node}' + targname + ':' else: - cmdstr += ' {node}:' + targpath + targname = '{node}:' + + if options.loginname: + cmdstr += ' {}@'.format(options.loginname) + targname + targpath + else: + cmdstr += ' {}'.format(targname) + targpath + currprocs = 0 all = set([]) diff --git a/confluent_client/doc/man/nodersync.ronn b/confluent_client/doc/man/nodersync.ronn index 582f79d9..c187215e 100644 --- a/confluent_client/doc/man/nodersync.ronn +++ b/confluent_client/doc/man/nodersync.ronn @@ -16,6 +16,9 @@ noderange. This will present progress as percentage for all nodes. Specify how many rsync executions to do concurrently. If noderange exceeds the count, then excess nodes will wait until one of the active count completes. + +* `-s`, `--substitutename`: + 'Use a different name other than the nodename for rsync' * `-m MAXNODES`, `--maxnodes=MAXNODES`: Specify a maximum number of nodes to run rsync to, prompting if over the