mrbbq has asked for the wisdom of the Perl Monks concerning the following question:
here is my script:ACTIVE FULL SUSPENDED FROZEN IMPORTED ST0315 (FROZEN) ST0306 (FROZEN) ST0304 (FROZEN) ST0314 (FROZEN) ST0308 (FROZEN) ST0309 (FROZEN) ST0312 (FROZEN) ST4910 (FROZEN) ST4782 expires 06/19/2004 22:00 (FROZEN) ST2838 expires 07/09/2004 20:46 (FROZEN) ST4173 expires 07/10/2004 20:30 (FROZEN) ST1606 expires 07/14/2004 22:43 (FROZEN) ST4717 expires 05/14/2004 00:55 ST6481 expires 05/16/2004 05:22 ST2058 expires 05/16/2004 03:55 ST6540 expires 05/16/2004 01:36 ST6476 expires 05/16/2004 01:18 ST6486 expires 05/16/2004 01:35 ST1467 expires 05/16/2004 03:55 ST4730 expires 05/16/2004 01:48 ST5353 expires 05/16/2004 01:35 ST5833 expires 05/16/2004 01:36 ST3325 expires 05/16/2004 01:25 ST5413 expires 05/16/2004 01:18 ST5676 expires 05/16/2004 01:49 ST2044 expires 05/16/2004 01:46 ST3276 expires 05/16/2004 01:04
#!/usr/local/bin/perl open (IMAGES, "/usr/openv/netbackup/bin/admincmd/bpmedialist -summary +|"); open (HTML, ">/usr/openv/netbackup/stats/frozen.html") || die "Can't o +pen output!"; select(HTML); set_date(); match(); sort_tapes(); write_html(); close IMAGES; close HTML; ## ## Subroutines... ## ## sub set_date { my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); ($mday < 10) ? ($mday = 0 . $mday) : ($mday =+ $mday); (($mon + 1) < 10) ? ($mon = 0 . ($mon + 1)) : $mon++; my $stamp; $hour = 0 . $hour if ($hour < 10); if ($hour > 12) { $hour = $hour - 12; $stamp = 'PM'; } elsif ($hour eq '12') { $stamp = 'PM'; } else { $stamp = 'AM'; } $min = 0 . $min if ($min < 10); $sec = 0 . $sec if ($sec < 10); my ($date_today) = $mon . '/' . $mday . '/' . $year; my ($time) = $hour . ':' . $min . ':' . $sec . " $stamp"; $rdate_today = \$date_today; $rtime = \$time; } sub match { while (<IMAGES>) { if ($_ =~ /^(\s+)MVA/o) { $_ =~ s/(\s+)//o; chop; my ($tape_id, $expiration, $date, $time, $stat +us) = split (/ /) create_entry($tape_id, $expiration, $date, $ti +me, $status) if ($status eq "(FROZEN)"); } } } sub create_entry { my ($tape_id, $index, $date, $time, $status) = @_; my ($rlEntry) = [$tape_id, $index, $date, $time, $status]; push (@{$tape_index{$tape_id}}, $rlEntry); } sub sort_tapes { my %hold_sort; foreach $tape (sort keys %tape_index) { my ($rlEntry) = @{$tape_index{$tape}}; push (@{$hold_sort{$rlEntry->[1]}}, $rlEntry); } %tape_index = %hold_sort; } sub write_html { print "<HTML><HEAD><TITLE>Netbackup Frozen Tape Report</TITLE> +<H1><CENTER>HEVA-ATL Frozen Tape Report</H1></CENTER></HEAD><B R><CENTER><FONT SIZE=5>Last updated: $$rdate_today <BR>at $$rtime </FO +NT></CENTER><BODY BGCOLOR=white><BR><BR><CENTER><TABLE BORDER= 4 WIDTH=60%><TR ALIGN=CENTER><TD>Media ID</TD><TD>Expiration Date</TD> +<TD>Expiration Time</TD></TR>\n";<br> if (@{$tape_index{expired}}) { print "<TR ALIGN=CENTER><TD COLSPAN=3>Currently Frozen + Tapes (remove)</TD></TR>\n"; foreach $tape (@{$tape_index{expired}}) { print "<TR ALIGN=CENTER><TD>$tape->[0]</TD><TD +>$tape->[2]</TD><TD>$tape->[3]</TD></TR>\n";<br> } } else { print "<TR ALIGN=CENTER><TD COLSPAN=3>No currently exp +ired FROZEN tapes</TD></TR>\n"; } if (@{$tape_index{expires}}) { print "<TR ALIGN=CENTER><TD COLSPAN=3>The following ar +e FROZEN but NOT yet expired</TD></TR>\n"; foreach $tape (@{$tape_index{expires}}) { print "<TR ALIGN=CENTER><TD>$tape->[0]</TD><TD +>$tape->[2]</TD><TD>$tape->[3]\n</TD></TR>";<br> } } else { print "<TR ALIGN=CENTER><TD>No other frozen tapes.</TD +></TR>"; } print "</TABLE></CENTER></BODY></HTML>\n"; }
Edited by theorbtwo: Add code tags, remove br tags.
janitored by ybiC: Retitle from antithetical "Clueeless and need help". But I *do* mean that in the kindest possible way, mrbbq. 8^)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Parse backup log
by matija (Priest) on Apr 20, 2004 at 19:25 UTC | |
|
Re: Parse backup log
by Belgarion (Chaplain) on Apr 20, 2004 at 19:37 UTC | |
by mrbbq (Sexton) on Apr 20, 2004 at 19:44 UTC | |
by Belgarion (Chaplain) on Apr 20, 2004 at 19:56 UTC | |
by mrbbq (Sexton) on Apr 20, 2004 at 20:04 UTC | |
by Belgarion (Chaplain) on Apr 20, 2004 at 20:18 UTC | |
| |
|
Re: Parse backup log
by Belgarion (Chaplain) on Apr 20, 2004 at 19:16 UTC | |
by mrbbq (Sexton) on Apr 20, 2004 at 19:27 UTC | |
|
Re: Parse backup log
by blue_cowdawg (Monsignor) on Apr 20, 2004 at 22:05 UTC |