【发布时间】:2021-09-17 17:50:17
【问题描述】:
我是 python 的新手。能够获取以下格式的数据:-
这里是代码:-
import paramiko
import json
class Remote_SSH:
def __init__(self,name,command):
self.name = name
self.command = command
def sshcont(self):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname = self.name, username='root')
ssh.invoke_shell()
stdin, stdout, stderr = ssh.exec_command (self.command)
cmdout = (stdout.read())
return cmdout
ssh.close()
def ssh_print(self):
list_logs = []
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname = self.name, username='root')
sftp = ssh.open_sftp()
stdin, stdout, stderr = ssh.exec_command (self.command)
for logs in stdout:
print logs.strip("\n")
list_logs.append(logs)
ssh.close()
return list_logs
kubectl_pods_data = Remote_SSH('IP_ADDRESS','kubectl get pods --namespace prelude').sshcont()
print '----------------------------------------------------------------'
print kubectl_pods_data
print type(kubectl_pods_data)
print '----------------------------------------------------------------'
这是输出
NAME READY STATUS RESTARTS AGE
abx-service-app-78968c4446-dz586 1/1 Running 0 34d
abx-service-app-78968c4446-mn8jz 1/1 Running 0 34d
abx-service-app-78968c4446-rd8xq 1/1 Running 0 34d
approval-service-5c869c44b6-8vxwd 1/1 Running 0 34d
approval-service-5c869c44b6-j6zgr 1/1 Running 0 34d
approval-service-5c869c44b6-nqxv9 1/1 Running 0 34d
<type 'str'>
如果相应的值未运行,我想打印名称列中的值。我尝试将其转换为字典,但无法这样做。如有任何帮助,我们将不胜感激。
【问题讨论】:
-
请附上您的代码。
-
kubectl_pods_data = Remote_SSH('ip_Address','kubectl get pods --namespace prelude').sshcont() 。这个命令是用来获取数据的,remote_ssh是我写的一个模块ssh到机器上运行命令
-
请在您的帖子中包含代码,而不是在评论中。
-
完成,我已经用我的代码更新了问题
-
所以你的
kubectl_pods_data只是一个字符串,虽然格式很好?
标签: python linux shell kubernetes scripting