Я абсолютно не знаю возможностей perl, поэтому подскажите, пожалуйста, как лоху, можно ли сделать так, чтобы клиент web-сервера посылал запрос , а тот его обрабатывал с помощью perl и выдавал результат для клиента в виде графика?
>Я абсолютно не знаю возможностей perl, поэтому подскажите, пожалуйста, как лоху, можно
>ли сделать так, чтобы клиент web-сервера посылал запрос , а тот
>его обрабатывал с помощью perl и выдавал результат для клиента в
>виде графика?
Юзать модуль GD
>Юзать модуль GD
Если заработает)))
>
>>Юзать модуль GD
>
>
>Если заработает)))Прекрасно работает в mrtg например. Но еще проще графики строить прямо в gnuplot и передавать обратно в программу в виде картинки через pipe.
>>
>>>Юзать модуль GD
>>
>>
>>Если заработает)))
>
>Прекрасно работает в mrtg например. Но еще проще графики строить прямо в
>gnuplot и передавать обратно в программу в виде картинки через pipe.
>
Можно передать результат gnuplota в броузер?
Можно краткий пример кода (сама схема)...?
#!/usr/bin/perl -w
use Chart::Lines;
use Tie::IxHash;open (IPA, "/usr/local/bin/ipastat -R inet-in -i /0-/23:59 -n -e |");
$line = <IPA>;
while ($line=<IPA>) {
$line =~ s/\s+/ /;
chomp $line;
my ($a101, $b101, $c101, $d101, $e101, $f101) = split (/ /, $line, 6);#$now = `date +%H.%M`;
$obj = Chart::Lines->new(90, 200);
$myhour24 = `date +%H.%M`;
@data = ( [ '', 'inet' ],
[ $f101, $f101]);
$obj->set ('title' => 'Inet_ALL',
'legend' => 'none',
# 'graph_border' =>10,
'brush_size' => 5,
'x_ticks' => 'normal',
'x_label' => $myhour24,
# 'max_val' => $scl_max24,
# 'min_val' => $scl_min24,
# 'tick_len' => 10,
## 'skip_x_ticks' => 12,
'transparent' => 'true',
'grey_background' => 'true',
'y_label' => 'inet_in_rule_101',
'grid_lines' => 'true',
# 'spaced_bars' => 'false',
'colors' => {
'background' => [255,255,255],
'x_grid_lines' => [155,186,214],
'y_grid_lines' => [155,186,214],
'text' => [60,40,140],
'dataset1' => [130,130,130]
}
);
$obj->png ("/patch_to_site/1.png", \@data);
}
close IPA;===============================================
Самодельная фигня , но работает.
xx.png ставиш в HTML <img src....> и смотриш
Данный пример смотрит ipastat , можно напрямую c ipfw show .
Поставить надо модули для перла см. выше.
Сдесь не справился только с осью времени , поэтому графики как градусники Ж)
Сам скрипт в крон.А вообще MRTG красивее , и те же команды прилепил туда .Короче работет и там и там.
>Можно передать результат gnuplota в броузер?
>Можно краткий пример кода (сама схема)...?Конечно можно. Я точно сейчас не вспомню протокол HTTP - нужно смотреть RFC или w3c.org...
Но идея такая - перловый скрипт без параметров выдает html code. со специальным параметром
он должен напечатать что-то вроде Content-Type: image/png; qs=0.5 и расставить нужное количество переводов строки. Потом просто в бинарном виде выводим картинку в формате PNG:open (GP, "|/usr/local/bin/gnuplot") or die "no gnuplot";
use FileHandle;
GP->autoflush(1);
print GP,"set term png;plot sin(x)\n";
close GPв хтмл-ном коде должно быть что-то вроде <IMG SRC="http://myserver.org/cgi-bin/myscript.pl?plotit">