1 |
dpavlin |
1.1 |
#!/usr/bin/perl -w |
2 |
|
|
# |
3 |
|
|
# Generate hyperlinked OmniBack reports |
4 |
|
|
# |
5 |
|
|
# 2003-05-09 Dobrica Pavlinusic <dpavlin@pliva.hr> |
6 |
|
|
# |
7 |
|
|
|
8 |
|
|
use strict; |
9 |
|
|
use HTML::TreeBuilder; |
10 |
|
|
|
11 |
|
|
# location of omnirpt binary |
12 |
|
|
my $omnirpt="/usr/omni/bin/omnirpt"; |
13 |
|
|
# output html pages to... |
14 |
|
|
my $dir="/data/mon/omni/"; |
15 |
|
|
# master report |
16 |
|
|
#my $master="index.html"; |
17 |
|
|
my $master="omni.html"; |
18 |
|
|
# how many hours to include in master report? |
19 |
|
|
my $hr = 36; |
20 |
|
|
|
21 |
|
|
my $html; |
22 |
|
|
my %errors; |
23 |
|
|
|
24 |
|
|
open(OR, "$omnirpt -report list_sessions -timeframe $hr $hr -html |") || die "list_sessions: $!"; |
25 |
|
|
while(<OR>) { |
26 |
|
|
$html .= $_; |
27 |
|
|
} |
28 |
|
|
close(OR); |
29 |
|
|
|
30 |
|
|
my $tree = HTML::TreeBuilder->new; |
31 |
|
|
$tree->parse($html); |
32 |
|
|
foreach my $tr ($tree->look_down('_tag', 'tr')) { |
33 |
|
|
|
34 |
|
|
my $el = scalar $tr->content_list; |
35 |
|
|
if ($el > 10) { |
36 |
|
|
my @line; |
37 |
|
|
foreach ($tr->look_down('_tag','td')) { |
38 |
|
|
push @line,$_->as_text; |
39 |
|
|
} |
40 |
|
|
if ($line[1] && |
41 |
|
|
$line[1] ne "Completed" && |
42 |
|
|
$line[1] ne "In Progress" && |
43 |
|
|
$line[1] ne "Queuing" |
44 |
|
|
) { |
45 |
|
|
#print "## $line[1]\n"; |
46 |
|
|
my $backup_spec = $line[0]; |
47 |
|
|
my $filename = lc($backup_spec); |
48 |
|
|
$filename =~ s#[^a-z0-9]+#_#g; |
49 |
|
|
if (! $errors{$backup_spec}) { |
50 |
|
|
dump_rpt("-report backup_errors -timeframe $hr $hr -datalist $backup_spec",$filename); |
51 |
|
|
$html =~ s#>$backup_spec<#><a href="$filename.html">$backup_spec</a><#gms; |
52 |
|
|
$errors{$backup_spec}++; |
53 |
|
|
} |
54 |
|
|
} |
55 |
|
|
|
56 |
|
|
my $session = $line[$#line]; |
57 |
|
|
if ($session) { |
58 |
|
|
my $filename = $session; |
59 |
|
|
$filename =~ s#/#-#g; |
60 |
|
|
dump_rpt("-report session_objects -session $session",$filename); |
61 |
|
|
$html =~ s#>$session<#><a href="$filename.html">$session</a><#gms; |
62 |
|
|
} |
63 |
|
|
} |
64 |
|
|
} |
65 |
|
|
|
66 |
|
|
$tree->delete; |
67 |
|
|
|
68 |
|
|
# dump master report |
69 |
|
|
open(WR, "> $dir/index.html") || die "can't create $dir/index.html: $!"; |
70 |
|
|
print WR $html; |
71 |
|
|
close(WR); |
72 |
|
|
|
73 |
|
|
# -report session_flow -timeframe 24 24 -html |
74 |
|
|
# |
75 |
|
|
# |
76 |
|
|
|
77 |
|
|
|
78 |
|
|
sub dump_rpt { |
79 |
|
|
my $arg = shift @_; |
80 |
|
|
my $filename = shift @_; |
81 |
|
|
$filename .= ".html"; |
82 |
|
|
|
83 |
|
|
#print "$filename\n"; |
84 |
|
|
|
85 |
|
|
# create session report |
86 |
|
|
open(WSO, "> $dir/$filename") || die "can't create $dir/$filename: $!"; |
87 |
|
|
open(SO, "$omnirpt $arg -html |") || die "$arg: $!"; |
88 |
|
|
while(<SO>) { |
89 |
|
|
print WSO $_; |
90 |
|
|
} |
91 |
|
|
close(SO); |
92 |
|
|
close(WSO); |
93 |
|
|
} |
94 |
|
|
|