Perl-打开CLI环境并发送命令



我是Perl新手:)

我正试图写一个简单的脚本,只需打开一个CLI环境(通过执行bash命令)然后将命令发送到该环境(只有熟悉该命令的环境)

例如: 我的linux正在HP服务器上运行。如果我想查看root用户下的内存配置,我需要执行:'hpasmcli"然后我就可以获得以下环境:

root@xxx:/>%hpasmcli适用于Linux的HP management CLI(v2.0)版权所有2008 Hewlett-Packard Development Group,L.P.


注意:并非所有Proliant服务器都支持某些hpasmcli命令。

键入"help"以获取所有顶级命令的列表

hpasmcli>

现在需要输入"show dimm":


注意:并非所有Proliant服务器都支持某些hpasmcli命令。

键入"help"以获取所有顶级命令的列表

hpasmcli>显示dimm

然后我将在服务器中获取内存配置。

所以我打算写一个Perl脚本来完成这个简单的任务。我尝试使用"expect"one_answers"open(FH,"|/sbin/hpasmcli"),但我只能登录到CLI环境,而不是发送命令"show dimm"

谢谢你的帮助!

您可能需要在每次写入后刷新输出缓冲区:

open my $CMD, "| /sbin/hpasmcli"
    or die "Couldn't pipe output to hpasmcli: $!";

my $old_out = select $CMD;
$| = 1;    #perl's autoflush global variable which affects the current output file handle
select $old_out;
print {$CMD} "show dimm";

最新更新