![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
здраствуйте. возникла проблема при создании цикла с использованием net::ssh::perl.
есть список шеллов локальной сети, вида user:pass:host нужно подключится к каждому хосту и выполнить пару команд, результат выполнения сохранить в файл. я для этого для этого использовал код вида:
но столкнулся со следующей проблемой, если один из компьютеров локальной сети завис или на перезагрузке, скрипт заканчивает свою работу не закончив цикл с ошибкой "Connection refused.....". Как сделать так, чтобы после неудачного подключения скрипт не заканчивал цикл? |
|||
|
||||
Pfailed |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Видимо там происходит die(). Заключите этот блок в eval{};
|
|||
|
||||
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
спасибо вроде помогло)
Это сообщение отредактировал(а) angeloflight - 29.11.2009, 18:23 |
|||
|
||||
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
все работает, но возникла новая проблема - не выполняется команда, пишет только версию ssh "Remote protocol version 2.0, remote software version OpenSSH_4.3p2 Debian-8..", а потом переходит к след подключению
|
|||
|
||||
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
проблема решена, путем установки доп библиотек
|
|||
|
||||
dmitryk1 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
подробнее можно список библиотек и вообще.
результирующий работающий код? Тоже сталкивался с подобными проблемами и так и не решил как подключаться с паролем и логином. Сделал подключение с ключём, который ручками предварительно создаётся без пароля, а потом при логине используется. Всё ок, но интерактивно ввести новый хост не позволяет. Сначала манипуляции с ключами надо производить :( |
|||
|
||||
angeloflight |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
все вобщем было хорошо, но возникла проблема, которую пытался решить сам - но так и не получилось. Скрипт подключается, выполняет команды, но переодически выдает ошибки и на n-ой стадии цикла заканчивает свою работу.
![]() вот пример ошибок, которые переодически выводятся при запуске с ключем -W
Библиотеки пересобирал кучу раз, в них мне кажется точно проблемы нет. погуглив пришел к выводу, что у меня в скрипте где то ошибка - но найти ее не могу ( Сильно не пинайте за кривой код, перл начал читать спецом, чтобы написать пару нужных скриптов. вот пример скрипта:
|
||||
|
|||||
dmitryk1 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.6.2008 Где: Новосибирск Репутация: 2 Всего: 2 |
Ну ругается, что у тебя переменная где-то пустая, а ты её юзаешь.
пробуй проверять значения везде-везде. Есть или нет. После присваивания. У меня получалось такое когда я пустой результат запроса получал и пытался обработать ![]() |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
angeloflight, если я правильно понимаю, скрипт тестирует работоспособность ssh-серверов. Похоже, что в списке есть сервера, где вместо ssh-сервера отвечает что-то другое. Т.к. Net::SSH::Perl не идеален, то Вы и получаете указанные выше предупреждения. Это всего лишь мое досужее рассуждение, т.к. код модуля Net::SSH::Perl я не смотрел.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Раньше пробовал Net::SSH::Expect (показался крайне неудобным) и Net::SSH::Perl (трудно ставить и баговый). Недавно попробовал Net::OpenSSH. Производит хорошее впечатление. Рекомендую попробовать его.
|
|||
|
||||
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
amg спасибо за ваш скрипт, поставил нужные библиотеки - но скрипт не работает, выдает след:
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Наверное, нужно было
|
|||
|
||||
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
тоже не помогло, ssh ругается на непонятный ключь "M". но я не могу понять откуда он берется.
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
||||
|
||||
angeloflight |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.11.2009 Репутация: нет Всего: нет |
amg, спасибо за вашу помощь. проблема была не в коде, оказалось, что Net::OpenSSH не работает с openssh версиями младше 4. после перестановки, все заработало.
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |