2011-12-22 4 views
0

Ниже часть кодаNet :: Telnet

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; 
} 

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

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

«ВФ чтения ждет запроса логина: в telnet-test-rtc1.pl строке 11»

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

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

приветов

ответ

0

В документации по Net::Telnet, это может быть найдено:

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

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

Telnet скорее постарше, технологически. Возможно, неплохо заглянуть в SSH.

+0

Спасибо ..my проблема решена с $ session-> errmode ("return"); ...... приветствует – Mahesh

+0

@Mahesh Рад, что это помогло! – TLP

0

Проверьте perldoc:

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

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

Смежные вопросы