シリアルポートをスニッフィングして stdout に出力するコマンドを実行しようとしました。コマンドは継続的に実行され、終了または停止しません。putty SSH コンソールを使用すると、コンソール上でデータが常に更新されていることがわかります。
コマンドを送信してトレースを開始できます。関数を使用して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