【发布时间】:2022-01-20 21:15:47
【问题描述】:
全部,
请帮我解决以下问题。
我有一个 linux 设备,我使用 python 脚本中的 PAAMIKO 模块通过 SSH 连接到该设备。
问题是,基本上,如果我向设备发送命令,链接“ping google.com”,输出只会在命令完成后显示(在这种情况下永远不会)所以我必须使用“ping -例如 n 2 google.com),并且仅在完成对 google.com 的 2 次 ping 操作后才会显示输出。
问题是并非所有应用程序都支持超时参数,例如我不能使用“tail -f /file”,因为拖尾永远不会完成,所以输出永远不会被打印,也不会得到其他由设备部分打印的实时轨迹。 脚本现在就是这样使用的。
elif action == "cmd":
cmd = command
(stdin, stdout, stderr) = ssh.exec_command(cmd)
out = stdout.readline()
if out:
print(out.replace("â", "").replace("ââ", "")) # only for case "systemctl --failed"
else:
print(stderr.read().decode('ISO-8859-1'))
else:
print("Your action: {} is invalid".format(action))
sys.exit(11)
【问题讨论】:
-
stdout.readline()不应等待命令完成。一旦你得到第一行,它应该会返回。