首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么paramiko ssh不能实时输出打印信息

为什么paramiko ssh不能实时输出打印信息
EN

Stack Overflow用户
提问于 2017-09-05 19:59:45
回答 1查看 342关注 0票数 1

我使用了python3 ssh,现在我可以登录远程设备,并执行我的远程C程序,但程序打印信息不能在本地pc上实时显示。如果我的C程序使用setbuf(stdout, NULL);来设置非缓冲,我的电脑可以获得实时信息;我想知道如果C程序没有设置非缓冲,我如何在本地电脑上获得远程实时信息。

下面是我的代码:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2017-09-05 20:29:25

您可以在expect包的包装器unbuffer下运行任何程序。在您的案例中:

代码语言:javascript
复制
ssh.exec_command("unbuffer %s" % cmd)

当然,这需要在目标计算机上安装unbuffer

参考:https://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46054463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档