Вывод команды wget в режиме реального времени с помощью exec_command в Paramiko

Я пытаюсь загрузить файл на всем компьютере, и поэтому я создал скрипт python. Он использует модульparamiko

просто фрагмент кода:

from paramiko import SSHClient, AutoAddPolicy
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(args.ip,username=args.username,password=args.password)

stdin, stdout, stderr = ssh.exec_command("wget xyz")
print(stdout.read())

Выход будет распечатан после завершения загрузки.!

Есть ли способ распечатать выходные данные в реальном времени?

Изменить: я посмотрел на этот ответ и применил что-то вроде этого:

def line_buffered(f):
    line_buf = ""
    print "start"
    print f.channel.exit_status_ready()
    while not f.channel.exit_status_ready():
        print("ok")
        line_buf += f.read(size=1)
        if line_buf.endswith('
'):
            yield line_buf
            line_buf = ''

 in, out, err = ssh.exec_command("wget xyz")
 for l in line_buffered(out):
        print l

Но, это не печать данных в реальном времени.! Он ожидает, что файл будет загружен, а затем распечатает весь статус загрузки.

Кроме того, я пробовал эту команду: echo one && sleep 5 && echo two && sleep 5 && echo threeи выход в режиме реального времени с line_bufferedфункцией. Но, для wgetкоманды, он не работает.

python,paramiko,

0
Яндекс.Метрика