【问题标题】:Cannot reload Cisco device using perl Net::Appliance::Session library无法使用 perl Net::Appliance::Session 库重新加载 Cisco 设备
【发布时间】:2013-02-21 10:19:17
【问题描述】:

我正在尝试使用 net::appliance::session 库重新启动 Cisco 设备。但即使代码没有给出错误,设备也不会重新启动。这是我正在使用的两行:

$session->cmd(String => 'Reload',Match => ['/Proceed/'], );
$session->cmd(String => "\n", Match => ['//'],);

在 Cisco shell 中,重新加载命令如下所示:

test#reload
Proceed with reload? [confirm]
Connection closed by foreign host.

This thread in the cpan forum 也告诉我这样做。我认为回车和确认对话框有问题。因为当我尝试创建一个目录时它工作正常:

$session->cmd(String => 'mkdir',Match => ['/Create dire.*/'] );
$session->cmd(String => 'test',Match => ['//'] );

这在 Cisco shell 中的等价物:

test#mkdir
Create directory filename []? test
Created dir flash:test

但是当我尝试删除这个需要回车确认的目录时,脚本再次失败。

$session->cmd(String => 'rmdir asd',Match => ['/Remove directory.*/'] );     
$session->cmd(String => '\n' ,Match => ['/Delete flash.*/'] );
$session->cmd(String => '\n');

Cisco 中的等价物是这样的:

test#rmdir test
Remove directory filename [test]? 
Delete flash:test? [confirm]
Removed dir flash:test

所以我认为问题不在于 reload 命令。但问题是发送回车作为确认。我试过\n\r\n\r\r\n和空字符串,但它们没有用。

有什么想法吗?

【问题讨论】:

    标签: perl cisco


    【解决方案1】:

    也许 Cisco 设备区分大小写?在示例中,您在 Perl 代码中使用了“重新加载”和“重新加载”。

    也许你可以试试这个:

    $session->say('reload'); $会话->聚集(); $session->say('确认'); $session->gather();

    【讨论】:

    • 好点。但它也没有工作。看起来这不是区分大小写的问题。谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 2015-12-05
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多