【发布时间】:2017-09-05 20:29:25
【问题描述】:
我使用python3 ssh,现在我可以登录远程设备,并执行我的远程C程序,但程序打印信息无法实时显示在本地电脑上。如果我的 C 程序使用setbuf(stdout, NULL); 设置非缓冲,我的 PC 可以获得实时信息;我想知道如果C程序没有设置非缓冲,如何在本地PC上获取远程实时信息。
这是我的代码:
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 的评论也适用于该函数中
%运算符的所有其他用途。 -
@JohnZwinck 是的,我知道 "%s" % cmd 只是 cmd;
标签: python python-3.x ssh