gpt4 book ai didi

python - 在 python 中通过 ssh 监控控制台输出

转载 作者:行者123 更新时间:2023-12-02 14:03:28 25 4
gpt4 key购买 nike

我试图找到一种方法来监视通过 ssh 和 Python 内部删除服务器控制台的输出。

Paramiko 和 Fabric python 模块提供了一种很好的方式来获取 ssh 连接并在远程服务器上执行特定命令并从这些命令中获取输出。

但是我不想执行任何我只想“屏幕抓取”的东西,可以说所有输出都被吐出到那台机器上的控制台。

Paramiko 是否可以用于此目的,或者是否有人知道可以实现此目的的另一个 Python 实用程序?

最佳答案

好的,所以我已经设法使用 SSHClient.invoke_shell() 让它工作,并监控它的输出。 Solaris 硬件都配置了 ILOM(Integrated Lights Out Manager),这对于在机器上获取串行控制台非常有用。

client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect("9.9.9.9", 22, "username", "password")
channel = client.invoke_shell()
channel.settimeout(0.0)

while True:
r, w, e = select.select([channel], [], [])
try:
console_data = ""
while channel.recv_ready():
console_data += channel.recv(1024)
if len(console_data) == 0:
print "\n*** EOF\n"
break

# Search console_data for console prompt
# If found, start a serial console
if re.search("->", console_data):
channel.send("start -script SP/Console")
elif re.search("y/n", console_data):
channel.send("y\n")
elif re.search("SOME STRING ON CONSOLE", console_data):
print "Action completed"
break
except socket.timeout:
pass
channel.close()
client.close()

上面的代码连接到 ILOM 上的服务端口并等待“->”提示,一旦收到它就会通过“start -script SP/Console”启动串行控制台,然后回答“y”以继续提示。

现在我们有了串行控制台,可以监控到这个串行控制台的所有输出,当一些预定义的字符串输出到控制台时,我可以退出。

关于python - 在 python 中通过 ssh 监控控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793959/

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