背景
我正在开发一个bash脚本,从服务器机架中的所有设备中提取序列号和部件号,我的目标是能够运行单个脚本(库存.sh)当它生成包含我需要的信息的文本文件时就离开了。我使用bash来获得最大的兼容性,rhel6.7系统确实安装了Perl和Python,但是它们有最少的库。到目前为止,除了bash之外,我还没有使用过任何东西,但是我并不反对从bash脚本调用Perl或Python脚本。在
我的问题
我需要检索序列号和零件号,从Dot Hill系统保证的SAN3824,以及设备内部的序列号。获得所需信息的唯一方法是通过SSH连接并运行以下三个命令将输出转储到本地文件:
限制:
现在我认为我最好的选择是在文件夹中放一个Python或Perl库和其他脚本,并编写一个脚本将命令的输出转储到可以用bash脚本解析的文件中。哪种语言更容易在文件中提供库?我在找一个尽可能小而简单的图书馆。我只需要一种将这些命令的输出转换为XML文件的方法。现在我只在脚本中使用ssh 3次,每次都必须输入密码。在
最后我联系了制造商,问了我的问题。他们说系统没有设置没有密码的连接,他们的SNMP是非常基本的,不会提供我需要的信息。他们说用FTP连接到系统并使用“getlogs”下载配置和日志的存档。不太理想,因为只运行一个命令需要4分钟,但这似乎是我唯一的选择。下面是我编写的脚本,通过将登录凭据添加到.netrc文件来自动检索文件。这适用于RHEL 6.7:
这给了我一堆压缩文件,但我只需要“存储日志”文件。它大约有500000行,第一部分是XML格式的整个配置,然后是文本格式的配置,然后是系统的日志。我对文件进行了解析,并在末尾剥离了日志,将文件缩减到15000行。从那里我把它分成两个文件(配置.xml以及配置文件). 然后,我把我需要的3个命令的XML输出拉到我之前编写的脚本搜索的3个文件中。现在,我的库存脚本将需要的所有内容都拉入,尽管由于等待系统生成zip文件需要4分钟,所以速度相当慢。我希望这对将来的人有帮助。在
编辑:
^{pr2}$等待系统编译4分钟的时间太长了。所以我最后使用paramiko和python脚本将命令的输出转储到其他代码可以解析的文件中。它接受控制器的IP作为参数。这是给感兴趣的人的剧本。再次感谢你的帮助。在
看看SNMP。您可以使用SNMP工具远程提取所需的合理信息。制造商应该能够为您提供mib。在
相关问题 更多 >
编程相关推荐