2013-02-21 36 views
0

我正嘗試使用net :: appliance :: session庫重新啓動Cisco設備。但即使代碼不會給出錯誤,設備也不會重新啓動。這是兩行我使用:無法使用perl Net :: Appliance :: Session庫重新加載Cisco設備

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

在Cisco殼一個reload命令是這樣給出:

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 => ['//']); 

這在思科殼的equivelant:

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'); 

在思科的equivelant是這樣的:

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

所以我覺得這個問題是不是reload命令。但問題是發送回車作爲確認。我試過\n\r\n\r\r\n和空字符串,但他們沒有工作。

任何想法?

回答

0

也許思科設備區分大小寫?在這個例子中,你使用Perl代碼中的'重新加載'和'重新加載'。

也許你可以試試這個:

$會話級>說( '刷新'); $ session-> gather(); $ session-> say('confirm'); $ session-> gather();

+0

好點。但它也沒有工作。看起來這不是個案敏感問題。感謝answaer。 – Alptugay 2013-02-21 11:45:36

相關問題