Paramiko pomija niektóre dane na kanale
Próbuję wykonać polecenie, które wącha port szeregowy i drukuje na standardowe wyjście. Polecenie działa nieprzerwanie, nie wychodzi ani się nie zatrzymuje. Kiedy używam konsoli putty SSH, widzę dane stale aktualizowane na konsoli.
Mogę wysłać polecenie i rozpocząć śledzenie. Kiedy próbuję odczytać dane wyjściowe za pomocą kanału Paramiko odczytanego za pomocąrecv
funkcjonować. Obserwuję, że nie przechwytuje wszystkich danych wysłanych przez sniffera.
Wykonujęrecv
operacja po sprawdzeniurecv_ready
status.
Poniżej znajduje się kod. Jak mogę uniknąć pominięcia danych?
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