我在我的perl脚本中使用Net :: Telnet模块。我给这个脚本提供了一个路由器列表来登录并检索这些节点的输出。
在这三个节点中,我提到了列表中间的一个节点,该节点不可ping或在网络上真的不存在。
例如,请考虑下面的节点列表
brtm502
biad502
bjae500
其中biad502
无法ping(或不存在于网络上)。
当我运行这个脚本时,它停止并抛出输出并在那时死亡。
"unknown remote host: biad502 at unix-gsr-manual.pl line 70"
我的要求。
1 /即使某个节点在网络中不可用,脚本仍应继续到下一个节点并按预期提供输出,不包括不在网络上的节点。
我尝试使用下面的代码,但结果仍然相同。
$session->open("$node") ;
$session->errmode("return");
答案 0 :(得分:1)
嗯,看一眼the documentation,您可以执行以下操作之一:
errmode
更改为die
以外的其他内容(默认设置)。eval
block查看连接是否成功(并在连接失败时发出警告并执行其他任何操作)。Try::Tiny
或TryCatch
)来捕获异常,而不是die
。答案 1 :(得分:1)
在告诉Net :: Telnet建立连接后,您正在设置errmode。使用您在文档中找到的扩展调用,反转顺序或将errmode设置折叠到 - > open。