Построчный вывод CGI скрипта

Alex Emergy alex.emergy на gmail.com
Пт Дек 17 12:06:39 GMT 2010


в общем все это выглядит вот так:
http://i067.radikal.ru/1012/a4/885cd073e2db.png


17.12.2010 14:49, Andrew Bondarenko пишет:
> А как же веб-страничка, и браузер, и апач...
> Если выводит на экран - то должно всё быть сразу.
> Ну, если только что-то сильно не изменилось в perl. Каюсь, давно его не
> пользовал - на 10.04 ни разу =(
>
> On 12/17/2010 02:40 PM, Alex Emergy wrote:
>> у скрипта есть цикл. В цикле:
>> print "$bla1 $bla2 $bla3\n";
>> вывод каждой строки примерно около секунды. Строк много.
>>
>> Подробности:
>> скрипт лезет на маршрутизатор, вводит там команду:
>> sh ip nat translations (показывает все активные трансляции)
>> подсчитывает количество трансляций на каждый ip, сортирует по убыванию.
>> далее идет цикл на каждый ip:
>> берет из arp таблицы MAC айпишника, ищет его на коммутаторах
>> выводит(обычный print):
>> кол-во трансляций, ip, ip-свича, порт, MAC, производителя MAC'а,
>> дескрипшон. На все уходит время. И по большому счету первые строки самые
>> важные т.к. показывают тех у кого больше, но когда приходится ждать
>> около 3 минут - это вообще не айс :(
>>
>> Файлов он никаких не пишет, просто выводит информацию
>>
>>
>>
>> 17.12.2010 14:04, Andrew Bondarenko пишет:
>>> On 12/17/2010 12:36 PM, Alex Emergy wrote:
>>>> Есть у меня самописный CGI скрипт на Perl, который ходит по цискам и
>>>> выводит некую информацию о пользователях на веб морду (apache). Работает
>>>> он достаточно медленно. Проблема в том, что когда он жил на старом
>>>> сервере (Ubuntu 8.04), он выводил информацию построчно. Т.е. выводил
>>>> информацию до того как полностью отработал. На новом же сервере (Ubuntu
>>>> 10.04, понимаю конечно, что дело не в версии OC) он выводит информацию,
>>>> только после того как полностью отработает.
>>>>
>>>> Раньше я видел как на веб страничке у меня "в живую" появляется по одной
>>>> строчке, а теперь через длительное время вся страничка. Куда копать и
>>>> что конкретно гуглить ума не приложу.
>>>>
>>>> Есть идеи, как добиться поведения как на старом сервере?
>>>>
>>>
>>> А кто есть кто?
>>> Именно скрипт не переписывает файл на сервере пока до конца не
>>> выполнится, или сервер так хитро отдает старый файл?
>>> В первом случае - либо это что-то perl-специфичное изменили, либо я бы
>>> посмотрел в сторону flush для начала, если такое есть в perl.
>>> Во втором - а что если открывать файлик перед каждой записью строки в
>>> него и закрывать после? =)
>>>
>>>
>>
>
>
>

-- 
С уважением,
Alex Emergy



Подробная информация о списке рассылки ubuntu-ru