gpt4 book ai didi

python - 如何使用 paramiko 连续读取长时间运行的 ssh 命令的输出而不阻塞

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:06 24 4
gpt4 key购买 nike

我正在尝试连续读取长时间运行的 ssh 命令的输出。我明白exec_command是非阻塞的。但一旦我使用 stdout.readlines()它变得阻塞。我不想等待 10 分钟让 ssh 命令完成读取所有输出行。我想在 ssh 命令写入标准输出后立即获取输出。有办法做到吗?

import paramiko
#import select
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname,username=username,password=password)
#transport = ssh.get_transport()
#channel = transport.open_session()
stdin,stdout,stderr = ssh.exec_command(command)
print stdout.readlines()

最佳答案

import paramiko
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname,username=username,password=password)
stdin,stdout,stderr = ssh.exec_command(command)
for line in iter(lambda: stdout.readline(2048), ""):
print(line)

上面的代码有帮助。我从以下位置得到了这个答案建议 get output from a paramiko ssh exec_command continuously

关于python - 如何使用 paramiko 连续读取长时间运行的 ssh 命令的输出而不阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37841830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com