|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 27 Mar 2002 19:10:49 To : Alex Gain Subject : Re: оПHАКЕЛЮ Я...( ЯЛHРПХ БМСРПХ) -------------------------------------------------------------------------------- Alex Gain wrote: > Hужно реализовать вот такую возможность показывать логи через веб. > Hо, например нижеследующая строка: > @lines = $t->cmd("cat -u /var/named/$log"); > приводит при размере файла более 1,5М к ошибке: > > maximum input buffer length exceeded: 1048576 bytes at > /usr/local/apache/cgi-bin/exec_rndc.pl line 48 > > Как побороть это? дайте плиз совет! Включая телепатию предположу, что $t это объект класса Net::Telnet. Тогда, для вычитывания длинного ответа Вам надо $t->cmd("cat -u /var/named/$log"); заменить примерно на # Посылаем команду $t->print("cat -u /var/named/$log; echo Al1 0uTPuT d0nE"); # Игнорируем эхо $t->getline; # Читаем вывод пока не встретим нашу "волшебную" строку # или EOF или timeout while (defined(my $line = $t->getline)) { last if $line =~ /Al1 0uTPuT d0nE/; # Делаем со строками что надо. Сохраняем в файле и т.п. } Сравнение с промптом вместо волшебной строки не прокатит. Мы читаем построчно, а строчка с промптом не завершается переводом строки. Андрей P.S. А разве нет более цивилизованных способов достать файл с удаленого хоста? --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/5284d6eaa4cb.html, оценка из 5, голосов 10
|