| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > net::telnet не работает |
| Автор: Suic2 8.10.2012, 11:59 | ||||||
Всем привет, есть скрипт, которые подключается к коммутаторам и заливает туда некоторые правила.
но при если пытаюсь запустить его из апача (require "/tmp/telnet.pl" или тупо дописать его же в скрипт админки биллинга), он ругается всякими ошибками вот что пишет в httpd-error.log если подключать через require:
а вот что, если вписать код в сам скрипт:
в чем может быть проблема? как исправить? |
| Автор: Suic2 8.10.2012, 12:33 |
| Там естественно $telnet_h->waitfor("/$pr/"); $pr ни откуда не берётся, пустая строка... Насколько я понял, там должно быть приветствие командной строки, но в каком виде так и не понял... когда подключаюсь по телнету мне коммутатор выдаёт DES-1228/ME:5# или DES-3028:5# гдето в дебрях интернета видел пример, там пустую $pr='' передают и всё работает:( и если запускать не через апач то тоже всё отлично |
| Автор: alezzz 8.10.2012, 12:40 |
| Видимо недождалось вашего пустого $pr и вывалилось по таймауту. Запустите скрипт вручную, без апача. Посмотрите на каком именно свиче валится скрипт, что у вас еще есть кроме 1228 и 3028. У меня D-Link-и нормально работают с методами open, login, cmd, вот на цисках да, извращался с waitfor |
| Автор: Suic2 8.10.2012, 12:44 |
| так если вручную запускаю он корректно завершается, залив всё что нужно на все коммутаторы. а можно пример с login и cmd? у меня уже после login вылетало кроме 1228 и 3028 ничего больше нет |
| Автор: alezzz 8.10.2012, 12:57 | ||
По названию переменных должно быть понятно что там, есдинственное $params{'default_prompt'} = '/DES-[\d-]+:.#/' Добавлено через 3 минуты и 5 секунд под это наверно стоит переписать регулярку $params{'default_prompt'} = '/DES-[^:]+:.#/' как-то так |
| Автор: Suic2 8.10.2012, 13:12 |
| вы волшебник! оно работает, спасибо большое, с cmd и login всё намного проще и компактнее проверял только на 1228 но думаю и с 3028 проблем не возникнет, в худшем случае регулярное выражение поменять |