1: #!/usr/bin/perl -w
2:
3: #Use instead of the un-human-readable output from the #bpdbjobs -report -all_columns command.
4: <code>
5: use strict;
6: $ENV{PATH} =
7: '/bin:/usr/bin:/usr/openv/netbackup/bin:/usr/openv/netbackup/bin/admincmd:/usr/openv/volmgr/bin';
8: sub formattime {
9: my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
10: = localtime(shift);
11: return sprintf('%04d/%02d/%02d %02d:%02d:%02d',
12: $year + 1900, $mon + 1, $mday,
13: $hour, $min, $sec);
14: }sub formathour {
15: my $sec = shift;
16: my $min = $sec / 60; $sec %= 60;
17: my $hour = $min / 60; $min %= 60;
18: return sprintf('%02d:%02d:%02d', $hour, $min, $sec);
19: }my %images;
20: open(BPIMAGELIST, join(' ', "bpimagelist -l", @ARGV, '|'))
21: or die "Can't exec bpimagelist: $@\n";
22: my $image;
23: while (<BPIMAGELIST>) {
24: if (/^IMAGE/) {
25: my ($client, $id, $class, $sched, $started,
26: $elapsed, $kbytes, $files, $keyword) =
27: (split)[1, 5, 6, 10, 13, 14, 18, 19, 31];
28: my $idsuffix = $id;
29: $idsuffix =~ s/.*_//;
30: $image = $images{$id} = {
31: client => $client,
32: id => $idsuffix,
33: class => $class,
34: sched => $sched,
35: started => $started,
36: elapsed => $elapsed,
37: kbytes => $kbytes,
38: files => $files,
39: keyword => $keyword,
40: tapes => {},
41: };
42: } elsif (/^FRAG/) {
43: ++$image->{tapes}{(split)[8]};
44: }}close(BPIMAGELIST);
45: $= = 2 + scalar keys %images;
46: my ($i, $tapes);
47: foreach $i (sort { $a->{started} <=> $b->{started} } values %images) {
48: $tapes = join(' ', sort keys %{$i->{tapes}});
49: write;
50: }format STDOUT_TOP =
51: Client ID Class Schedule Started Elapsed Keyword Kbytes Files Tapes
52: ------------ ---------- ----------- ----------- ------------------- -------- ------------ ------------ -------- --------------------
53: .
54: format STDOUT =
55: @<<<<<<<<<<< @>>>>>>>>> @<<<<<<<<<< @<<<<<<<<<< @<<<<<<<<<<<<<<<<<< @<<<<<<< @<<<<<<<<<<< @>>>>>>>>>>> @>>>>>>> ^<<<<<<<<<<<<<<<<<<<<
56: $i->{client}, $i->{id}, $i->{class}, $i->{sched}, formattime($i->{started}), formathour($i->{elapsed}), $i->{keyword}, $i->{kbytes}, $i->{files}, $tapes
57: ~~ ^<<<<<<<<<<<<<<<<<<<<
58: $tapes
59: </code>
60: