Net :: Telnet ошибка захвата - PullRequest
       0

Net :: Telnet ошибка захвата

0 голосов
/ 22 декабря 2011

Ниже приведена часть кода

use Net::Telnet;
my $session = new Net::Telnet (Timeout => 15,Prompt => '/#$/');
foreach $node (@nodes) {
    $session->open("$node") or die ("\n\n\n NOT ACCESSIBLE ");
    $session->login('admin', 'admin');
    $session->cmd('term len 0');

    my @output1=$session->cmd("sh isis neighbor");
    print @output1;
}

Назначение этого скрипта: войти в список узлов и распечатать вывод

однако я вижу, что один из узлов недоступен с сервера иэтот сценарий останавливает печать вывода с выводом ниже.

"eof read ожидает приглашения к входу в систему: в строке telnet-test-rtc1.pl 11"

Мое требование даже, если один из узловнедоступный сценарий должен продолжать исключать этот узел.

Возможно ли это?Пожалуйста, дайте мне знать, если требуется больше ясности

С уважением

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

В документации для Net :: Telnet это можно найти:

Ошибки, такие как тайм-аут, обрабатываются в соответствии с режимом ошибок. действие. Действие по умолчанию - распечатать сообщение об ошибке в стандартном ошибка и программа умрет. Смотрите метод errmode () для более подробной информации. информация.

Правильно установив режим ошибки, вы можете предотвратить смерть скрипта.

Telnet довольно стар, хотя и технологичен. Это может быть хорошей идеей, чтобы посмотреть SSH .

0 голосов
/ 22 декабря 2011

Проверьте perldoc :

Ошибки, такие как тайм-аут, обрабатываются в соответствии с действием режима ошибки.Действие по умолчанию состоит в том, чтобы напечатать сообщение об ошибке к стандартной ошибке и заставить программу умереть.Для получения дополнительной информации см. Метод errmode().

Поищите "errmode" на этой странице, и вы получите то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...