python - 在 Python 中使用 Paramiko 从 top 命令收集输出
问题描述
在这里,我正在尝试执行 ssh 命令并打印输出。它工作正常,除了 command top
。任何线索如何从顶部收集输出?
import paramiko
from paramiko import SSHClient, AutoAddPolicy, RSAKey
output_cmd_list = ['ls','top']
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname_ip, port, username, password)
for each_command in output_cmd_list:
stdin, stdout, stderr = ssh.exec_command(each_command)
stdout.channel.recv_exit_status()
outlines = stdout.readlines()
resp = ''.join(outlines)
print(resp)
解决方案
这top
是一个需要终端的奇特命令。get_pty
虽然您可以使用参数 of启用终端仿真SSHClient.exec_command
,但使用 ANSI 转义码会给您带来很多垃圾。我不确定你想要那个。
相反,执行top
批处理模式:
top -b -n 1
推荐阅读
- cluster-computing - PCA 被认为是一种数据预处理算法还是一种独立的聚类算法?
- javascript - 使用下拉菜单动态控制悬停
- python - 如何在 MacOS Mojave 上正确安装 python3 和 virtualenv?
- python - 如何在 jupyter_notebook 中显示 curdoc() 仪表板
- java - 未找到 Android Studio 模块中的 Chaquopy
- powershell - 需要得到一个字符串下的子字符串
- python - 使用 while 循环比较和修改系列
- python - 通过 Python 3 的 input() 的输入被自动转换为整数
- javascript - INPUT 字段中的值不能存储在 React 的状态中
- azure - 在 azure devops 中包含引用项目的 nuget 命令