sshpass无法在两台Linux机器之间复制完整的数据

问题描述 投票:0回答:1

Am使用python和paramiko在服务器A和服务器B之间复制5GB文件,并且脚本将从serverX执行,这将从serverX打开到ssh的ssh会话,并运行命令使用sshpass从服务器B复制文件。脚本可以运行,但是不能复制完整的5GB文件。它只复制一半,有时少于一半。

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(serverb, username=user, password=password)

try:
    stdin, stdout, stderr = client.exec_command("sshpass -p password scp -v -r root@serverA:/tmp/file_to_copy_name /tmp/",timeout=None)
except Exception as err:
    print("copy between server error")
    raise
python paramiko sshpass
1个回答
0
投票

client.exec_command()将立即返回,并且不等待命令完成。您必须等待命令自己完成。例如:

stdin, stdout, stderr = client.exec_command('some command')
out = stdout.read()
© www.soinside.com 2019 - 2024. All rights reserved.