私はpython3 sshを使用しています。リモートデバイスにログインしてリモートCプログラムを実行できますが、プログラム印刷情報はローカルPCにリアルタイムで表示できません。 Cプログラムでsetbuf(stdout, NULL);
を使用して非バッファリングを設定すると、私のPCはリアルタイム情報を得ることができます。 Cプログラムが非バッファリングを設定していないかどうかを知りたいのですが、ローカルのPC上でリモートのリアルタイム情報を入手するにはどうすればいいですか?paramiko sshがリアルタイムで印刷情報を出力できないのはなぜですか?
def get_ssh_log(hostip, login_name, pw, privaete_key, cmd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='%s' % hostip, port=22, username='%s' % login_name, password='%s' % pw,key_filename='%s' % privaete_key)
stdin, stdout, stderr = ssh.exec_command("%s" % cmd, bufsize=1)
for line in iter(stdout.readline, ""):
print(line)
ssh.close()
あなたが知っている ' "%s" は%のcmd'がちょうど' cmd'右ですか? –
@JohnZwinckのコメントは、この関数の '%'演算子の他のすべての用途にも当てはまります。 – BlackJack
@JohnZwinckはい、私は "%s"を知っています%cmdはちょうどcmdです。 – simon