Автор Гілка: SSH клієнт на Perl. У пошуках модуля.  (Прочитано 5344 раз)

Praporshic

  • Гість
Вітаю шановне панство.
Маю знайдений на смітниках Інтернету код, що обробляє отримані текстові данні та видає мені результат придатний для системи моніторингу. Код на Perl, майже самі регуляні вирази і їх на дві сторінки. Переписати його на щось інше - завдання не з легких. Для отримання початкових даних використовується модуль Net::SSH::Perl. Але у ньому немає такої потрібної речі, як призначення таймаутів з’єднання. Через це, коли порт відкритий але з якоїсь причини на ньому тиша, він здатен висіти без дії годинами.
Знайшов рішення на perlmonks.org, там пропонують додавати до модуля дві строки, що задають таймаут та при його спливанні "самознищують" скрипт. Рішення не дуже, бо якщо проблеми будуть десь "посередині" перевірки воно просто впаде та не перевірить наступні системи.
Отже питання: чи може хтось підказати модуль для Perl, щоб ним можна було замінити Net::SSH::Perl, нічого не втративши й отримавши призначення таймаутів? Я спробував замінити die на croak (так у тому модулі повертають помилки), але результату чомусь не зовсім досяг....
« Змінено: 2009-11-26 23:00:23 від Praporshic »

Praporshic

  • Гість
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #1 : 2009-11-28 00:55:52 »
Спробував скористатись Net::SSH2. Воно має параметр timeout, але він діє не так як треба: якщо з’єднання відкрилося але не відбувається жодних дій (авторизації, тощо - сама тиша), він все одно продовжує висіти.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3855
  • Карма: +12/-0
  • Програміст
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #2 : 2009-12-01 00:21:21 »
А не можна вбивати сам скрипт коли час вичерпується? (man timeout).
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3855
  • Карма: +12/-0
  • Програміст
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #3 : 2009-12-01 00:22:26 »
І бажано давати (посилання на) код, а не переспівувати Шаляпіна...
[Fedora Linux]

Praporshic

  • Гість
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #4 : 2009-12-01 09:48:04 »
А не можна вбивати сам скрипт коли час вичерпується? (man timeout).
У жодному разі. Скрипт має дати відповідь.
І бажано давати (посилання на) код, а не переспівувати Шаляпіна...
Офіційно я цього зробити не можу - NDA....

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3855
  • Карма: +12/-0
  • Програміст
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #5 : 2009-12-01 19:54:19 »
Ну тоді SIGALRM в поміч. (man perlfunc /alarm).
[Fedora Linux]

Praporshic

  • Гість
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #6 : 2009-12-01 20:13:35 »
Ну тоді SIGALRM в поміч. (man perlfunc /alarm).
І чому усі рішення так схожі на проктологію....  :-/

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3855
  • Карма: +12/-0
  • Програміст
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #7 : 2009-12-02 03:31:22 »
Ну тоді SIGALRM в поміч. (man perlfunc /alarm).
І чому усі рішення так схожі на проктологію....  :-/

Тому що суть задачі (на хлопський розум): «як перевірити що я не сплю?»
[Fedora Linux]

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #8 : 2009-12-06 13:57:17 »
Отже питання: чи може хтось підказати модуль для Perl, щоб ним можна було замінити Net::SSH::Perl, нічого не втративши й отримавши призначення таймаутів? Я спробував замінити die на croak (так у тому модулі повертають помилки), але результату чомусь не зовсім досяг....
Це досить гидка ситуація, бо здається, Perl-скрипт чекає поки SSH йому віддасть дані. Виходить такий-собі Rube Goldberg machine, що ламається посередині. Я колись мав десь подібну задачу, але використовував SSH2 клієнт написаний на Java — і там вже запхати свій особливий функціонал запросто.

Praporshic

  • Гість
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #9 : 2009-12-06 17:57:49 »
Java для мого випадку трохи схожа на ПЗРК проти мух...

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #10 : 2009-12-07 14:42:18 »
Java для мого випадку трохи схожа на ПЗРК проти мух...
А чо, варіант: добра нас*ати в якійсь сільській хаті щоби зібрались всі мухи села, а потім ту хату перетворити на майданчик під забудову. :-)
« Змінено: 2009-12-07 14:42:36 від BM »

Praporshic

  • Гість
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #11 : 2009-12-07 15:37:38 »
Вже робили. Тоді був моніторинг на Ada. Імітував роботу клієнта. Він вдало робив DoS на сервер, що обслуговує клієнтів.
На мене ще потім за це наїхали, що я його невірно налаштував (але перевести стрілки на людей, що забили написати документацію, проблемою не було).

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #12 : 2009-12-07 15:42:51 »
Java для мого випадку трохи схожа на ПЗРК проти мух...
А чо, варіант: добра нас*ати в якійсь сільській хаті щоби зібрались всі мухи села, а потім ту хату перетворити на майданчик під забудову. :-)
На кістках світлого майбутнього не збудувати. Навіть якщо це кістки мух.

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #13 : 2009-12-08 12:31:22 »
Вже робили. Тоді був моніторинг на Ada. Імітував роботу клієнта. Він вдало робив DoS на сервер, що обслуговує клієнтів.
На мене ще потім за це наїхали, що я його невірно налаштував (але перевести стрілки на людей, що забили написати документацію, проблемою не було).

А, то в тебе моніторинг може? І що саме моніториш? Може є інші способи?

Praporshic

  • Гість
Re: SSH клієнт на Perl. У пошуках модуля.
« Відповідей #14 : 2009-12-08 12:57:22 »
А, то в тебе моніторинг може? І що саме моніториш? Може є інші способи?
Моніторинг і є. VMware ESXi. Інші методи коштують грошей, а їх не дають  :(