Skip to content

Commit 2e6c63e

Browse files
committed
Use rsync for all transfers
The ssh maintainers have deprecated the use of scp. By removing the use of scp there is no longer a need for a cipher argument. Issue sohonetlabs#4, sohonetlabs#12
1 parent 0c3d7ed commit 2e6c63e

File tree

1 file changed

+10
-17
lines changed

1 file changed

+10
-17
lines changed

scp-chunk.py

+10-17
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
default_num_threads = 3
1717
default_retries = 0
18-
default_cypher = 'aes128-cbc'
1918
split_file_basename = 'chunk_'
2019

2120
INTERVALS = [1, 60, 3600, 86400, 604800, 2419200, 29030400]
@@ -227,14 +226,12 @@ def split_file_and_md5(file_name, prefix, max_size, padding_width=5,
227226
class WorkerThread(Thread):
228227

229228
def __init__(self, file_queue, dst_file,
230-
remote_server,
231-
cypher):
229+
remote_server):
232230

233231
Thread.__init__(self)
234232
self.file_queue = file_queue
235233
self.dst_file = dst_file
236234
self.remote_server = remote_server
237-
self.cypher = cypher
238235

239236
def run(self):
240237
while True:
@@ -289,9 +286,6 @@ def run(self):
289286

290287
def upload_chunk(self, src_file, dest_file):
291288
try:
292-
# subprocess.check_call(['scp', '-c' + self.cypher, '-q',
293-
# '-oBatchMode=yes', '-oConnectTimeout=30', src_file,
294-
# self.remote_server + ':' + dest_file])
295289
if winPath.match(src_file):
296290
src_file = winPath.sub(r'/\g<1>/\g<2>', src_file)
297291
src_file = src_file.replace("\\", "/")
@@ -332,10 +326,6 @@ def main():
332326
' off multiple SCP threads.'
333327
'Speeds up transfers over '
334328
'high latency links')
335-
parser.add_argument('-c', '--cypher',
336-
help='cypher use with from transfer see: ssh',
337-
default=default_cypher,
338-
required=False)
339329
parser.add_argument('-s', '--size',
340330
help='size of chunks to transfer.',
341331
default='500M',
@@ -361,7 +351,6 @@ def main():
361351

362352
args = parser.parse_args()
363353

364-
ssh_crypto = args.cypher
365354
try:
366355
chunk_size = human2bytes(args.size)
367356
except ValueError as e:
@@ -408,10 +397,14 @@ def main():
408397
with open(checksum_filename, 'w+') as checksum_file:
409398
checksum_file.write(src_file_md5 + ' ' + src_filename)
410399
print('copying ' + src_file + ' to ' + dest_checksum_filename)
411-
subprocess.check_call(['scp', '-c' + ssh_crypto, '-q',
412-
'-oBatchMode=yes', checksum_filename,
413-
remote_server + ':' + \
414-
dest_checksum_filename])
400+
#subprocess.check_call(['scp', '-q',
401+
# '-oBatchMode=yes', checksum_filename,
402+
# remote_server + ':' + \
403+
# dest_checksum_filename])
404+
subprocess.check_call(['rsync', '-Ptz', '--inplace', '--rsh=ssh',
405+
'--timeout=30', checksum_filename,
406+
remote_server + ':' + dest_checksum_filename])
407+
415408
except CalledProcessError as e:
416409
print(e.returncode)
417410
print("ERROR: Couldn't connect to remote server.")
@@ -439,7 +432,7 @@ def main():
439432
transfer_start_time = time.time()
440433
print("starting transfers")
441434
for i in range(num_threads):
442-
t = WorkerThread(q, dst_file, remote_server, ssh_crypto)
435+
t = WorkerThread(q, dst_file, remote_server)
443436
t.daemon = True
444437
t.start()
445438
q.join()

0 commit comments

Comments
 (0)