我正嘗試使用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
和空字符串,但他們沒有工作。
任何想法?
好點。但它也沒有工作。看起來這不是個案敏感問題。感謝answaer。 – Alptugay 2013-02-21 11:45:36