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
client.exec_command()
将立即返回,并且不等待命令完成。您必须等待命令自己完成。例如:
stdin, stdout, stderr = client.exec_command('some command')
out = stdout.read()