Я пытаюсь выполнить команду, которая обнюхивает последовательный порт и печатает на stdout. Команда запускается непрерывно, она не выходит или не останавливается. Когда я использую консоль SSH-шпильки, я могу видеть, что данные постоянно обновляются на консоли.Парамико, пропуская некоторые данные на канале recv
Я могу отправить команду и начать трассировку. Когда я пытаюсь читать выходные данные с использованием канала Paramiko, используя функцию recv
. Я наблюдаю, что он не захватывает все данные, выведенные сниффером.
Выполняю операцию recv
после проверки состояния recv_ready
.
Ниже приведен код. Как я могу избежать пропусков данных?
ssh= paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.connect('host.example.com')
channel = ssh.get_transport().open_session()
channel.get_pty()
channel.exec_command("sniff /dev/stty2")
while(True):
if(channel.recv_ready): # Doesnt get triggered often
print channel.recv(2048) # Reads only a part of the data
Нет, ответ случайный. Несколько раз он пропускает первую часть ответа, иногда последнюю часть. – Gops
Возможно, было бы полезно, если бы вы разместили то, что видите, тогда @Gops – Ben