- 论坛徽章:
- 0
|
15可用积分
-----------------------------------------------------------------------------------------------
| | | | | |
| DATE | OS TYPE | IP | COMMAND| RESULTS |
|________ _______| ____________________________________________ ___________|
| | | | | |
| | | | comd1 | false |
| | | | | |
| ______________ |_________________________________________________________ |
| | | | | |
| | | | comd2 | true |
| | | | | |
-----------------------------------------------------------------------------------------------
下面的cgi 程序 是生成 上面表格的代码。
#!/usr/bin/perl
use strict;
use warnings;
use CGI ;
use HTML::Template;
use IO::File;
my $tmpl_file = '/var/www/cgi-bin/tmplate'; # Change it
my $data_file = '/var/www/cgi-bin/log/testlog'; # Change it
my $template = HTML::Template->new(filename => $tmpl_file);
my $file = IO::File->new($data_file);
my $q = CGI->new;
my @data = $file->getlines;
my %dates = ();
for (@data) {
# $dates{(split /:/, (split)[0])[0]} = 1;
$dates{(split /:/)[0]} = 1;
}
my @dates = sort keys %dates;
my $selected = $q->param('rundate') || pop @dates;
@dates = map { {date => $_} } @dates;
my @log;
for (@data) {
my %t;
@t{qw/date computer platform command result Detail/} = (split(/;;/));
if ($t{result} eq 'FALSE') {
$t{result} = '<font color="red"> <a href=\'/cgi-bin/first.pl\' />' .$t{result}.'</font>';
}elsif ($t{result} eq 'TRUE') {
$t{result} = '<font color="green">'.$t{result}.'</font>';
}
push @log, \%t if $t{date} =~ /$selected/;
}
$template->param(selected => $selected,
log => \@log,
dates => \@dates);
print $q->header, $template->output;
其中log文件是shell脚本自动生成的。
格式如下
2009/01/05:14:42:21;;Redhat5.1;;12;;COMD1;;FALSE;;YT10A
2009/01/05:14:42:44;;Redhat5.1;;12;;COMD2;;TRUE;;102A
2009/01/05:14:42:46;;Redhat5.1;;62;;COMD3;;TRUE;;H02A
这段中是如果是falus,点false就是链接到一个文件
$t{result} = '<font color="red"> <a href=\'/cgi-bin/first.pl\' />' .$t{result}.'</font>';
现在的问题我点false 只能link到一个固定的地方, 但在log文件中, 每个false link的应该是不同的地方。这个怎么做到呢?
如我
第一行false ,点false 应该指向一个错误文件comd1.err,
第三行false, 点 false 应该指向另一个错误文件comd3.err,
这个错误的文件名应该和第四列comand有关系,
这样如何实现???
[ 本帖最后由 huanghaojie 于 2009-1-8 23:00 编辑 ] |
|