我有一个远程主机,通过paramiko运行涡轮增压器(涡轮增压器在一个周期内显示温度、功率和CPU负载)。Stdout paramiko从远程主机接收来自turbostat的循环数据字符串。 我想将这个输出流发送到Flask以查看web上的流,但是现在我的代码在web上只接收一个字符串
app = Flask(__name__)
apply_config(app, config)
app.add_url_rule('/api/host/<comp>/turbostat', 'turbostat', turbostat)
return app
def turbostat(comp):
def inner():
ip_addr = get_eine_ip_addr(comp)
print(ip_addr)
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=ip_addr, username='root', password='1', port=22, timeout=20)
sin, sout, serr = ssh.exec_command(""" turbostat -S | awk '{print "%Busy:"$2, "Bzy_MHz:"$3, "CoreTmp:"$10, "PkgWatt:"$16}' """)
for line in line_buffered(sout):
print(line)
return line
return flask.Response(inner(), mimetype='text/html')
def line_buffered(f):
while not f.channel.exit_status_ready():
yield str(f.readline())```
你在第一行打破了循环:
不确定要
turbostat
做什么。但如果要打印完整的输出,只需执行以下操作:(您甚至不需要
line_buffered
)。你知道吗我找到了正确的方法:
相关问题 更多 >
编程相关推荐