Я использую Paramiko для подключения к серверу через SSH, запускаю команду для создания отчета, а затем загружаю отчет на локальный компьютер. Кажется, что все работает нормально, без ошибок, но полученный файл пуст на моем локальном компьютере. Я использую Python 2.7 и последнюю версию Paramiko. Файл, который я пытаюсь загрузить, это CSV. Я проверил, что файл содержит сервер данных.Paramiko - sftp.get загружает пустой файл
код я использую ниже:
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username=user_name, key_filename=key_file)
except:
print 'error connecting'
try:
stdin, stdout, stderr = ssh.exec_command(report_cmd)
except:
print 'error generating report'
try:
sftp = ssh.open_sftp()
sftp.get(source_str, dest_str)
except:
print 'failed to DL file' + str(sys.exc_info())
ssh.close()
Чтение команд 'stdout' и/или' stderr' до тех пор, пока EOF не станет определенно лучшим вариантом. – glglgl
Спасибо, @glglgl. –
Спасибо Ethan и glglgl! Я знал, что ответ должен быть чем-то простым. Сейчас он работает отлично. Вот что я добавил ниже строки ssh.exec_command: «exit_status = stdout.channel.recv_exit_status()», как найдено @ http://stackoverflow.com/a/6570087/3954183 –