如何使用python paramiko模块从远程服务器获取服务详细信息

如何使用python paramiko模块从远程服务器获取服务详细信息,python,paramiko,Python,Paramiko,我想使用paramiko模块获取服务的详细信息 使用以下代码段: import paramiko ssh = paramiko.SSHClient() ssh.load_system_host_keys() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname, port, username, password) cmd='systemctl status docker' stdin, st

我想使用paramiko模块获取服务的详细信息

使用以下代码段:

import paramiko

ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, port, username, password)
cmd='systemctl status docker'
stdin, stdout, stderr = ssh.exec_command(cmd)

print(stdout.read())
这是一个非阻塞呼叫。因此,您必须等待远程命令的完成

在SSH服务器上执行命令。一个新的频道被打开,并且 执行请求的命令。命令的输入和输出流 以类似Python文件的对象形式返回,这些对象表示stdin、stdout、, 还有斯特德

因此,如果要获得输出,请尝试:

return_code = stdout.channel.recv_exit_status()
将阻塞,直到comand完成,这样您还将获得commad本身的返回代码

返回服务器上进程的退出状态。这主要是 用于检索exec_命令的结果。如果命令 尚未完成,此方法将等待完成,或者等待 频道关闭了。如果服务器未提供退出状态,则为-1 返回

这是一个非阻塞呼叫。因此,您必须等待远程命令的完成

在SSH服务器上执行命令。一个新的频道被打开,并且 执行请求的命令。命令的输入和输出流 以类似Python文件的对象形式返回,这些对象表示stdin、stdout、, 还有斯特德

因此,如果要获得输出,请尝试:

return_code = stdout.channel.recv_exit_status()
将阻塞,直到comand完成,这样您还将获得commad本身的返回代码

返回服务器上进程的退出状态。这主要是 用于检索exec_命令的结果。如果命令 尚未完成,此方法将等待完成,或者等待 频道关闭了。如果服务器未提供退出状态,则为-1 返回