基于 TELNET 的 APC PDU CLI 自动化

共0个回答, 标签: python telnet pexpect

我在网上看到过很多关于使用 Python pexpect、PHP 等通过 Telnet 登录 APC pexpect 的帖子。但是, 所有示例都是这样的:

Python-远程自动化 APC PDU

https://github.com/quackenbush/APC

他们使用控制控制台登录, 我认为它没有提供那么多指标。我正在寻找一种方法来自动化命令行界面, 并发送各种命令来检查指标。

我了解到 -c , 通过在登录提示下附加您的密码, 这是可能的:

APC_DEFAULT_USER     = 'apc'
APC_DEFAULT_PASSWORD = 'apc -c'
self.child.expect('User Name : ')
self.child.send(APC_DEFAULT_USER + '\r\n')
self.child.expect('Password  : ')
self.child.send(APC_DEFAULT_PASSWORD + '\r\n')

但这就是我被卡住的地方。我想要一个通用的解决方案, 允许我将不同的 PDU 命令指定为命令行 args, 如下所示:

--command power
--command current
etc.

我对在 Python 中这样做也没有强烈的感觉。如果另一种语言更直观, 我很乐意使用。我只是想把我的脚本建立在 Quankenbusunc/apc 脚本的基础上。

我已经尝试这样做 APC> 的提示期望:

self.info("Attempting to run command: {}".format(self.command))
self.child.expect('APC> ')
self.sendnl(self.command)
self.child.expect(' OK')
self.child.expect('APC> ')

但我最终得到了

"命令不存在"

错误, 即使我知道 "电源" 和 "当前" 命令确实存在。

为了完整起见, 我的最终目标是每隔几分钟或几分钟运行此脚本, 并将数据写入文件, 以跟踪一段时间内的功耗, 并最终创建此数据的一些图表。

相关问题

通过随机抽样其他列数据创建新列 如何使用熊猫获得包括每一个组合的计数 如何有效地展开矩阵的值与小块? 基于 TELNET 的 APC PDU CLI 自动化