Veritas-bu

[Veritas-bu] bpdbjobs script

2003-11-10 13:07:00
Subject: [Veritas-bu] bpdbjobs script
From: plblists AT iotk DOT com (Peter L. Buschman)
Date: Mon, 10 Nov 2003 19:07:00 +0100
--=====================_346749375==.ALT
Content-Type: text/plain; charset="us-ascii"; format=flowed


Here is a Perl function that parses this output neatly.  For each line of 
bpdbjobs output, pass it into parse_bpdbjobs() and you will
get back a Perl hash of key / value pairs.

--PLB

use Text::ParseWords;

##
## parse_bpdbjobs()
##
## This function is derived from the following Veritas command:
##
##   /usr/openv/netbackup/bin/admincmd/bpdbjobs
##
## --PLB 12/19/2001
##
## This function is Copyright (C) 2002 Peter L. Buschman.
## ( Derived from the NBUX Toolkit. )
##
sub parse_bpdbjobs {
   $_ = shift;
   my $tmpfile;
   chomp;
   s/'/\\'/g; # Escape any un-escaped single quotes.
   ##
   ## jobid,jobtype,state,status,class,schedule, client, server, started, 
elapsed,
   ## ended, stunit, try, operation, kbytes, files, pathlastwritten, percent,
   ## jobpid, owner, subtype, classtype, schedule_type, priority, group,
   ## masterserver, retentionunits, retentionperiod, compression,
   ## kbyteslastwritten, fileslastwritten, filelistcount, [files]..., trycount,
   ## [trypid, trystunit, tryserver, trystarted, tryelapsed, tryended, 
trystatus,
   ## trystatusdescription, trystatuscount, [trystatuslines]..., 
trybyteswritten,
   ## tryfileswritten]
   ##
     my(
       $jobid,
       $jobtype,
       $state,
       $status,
       $class,
       $schedule,
       $client,
       $server,
       $started,
       $elapsed,
       $ended,
       $stunit,
       $try,
       $operation,
       $kbytes,
       $files,
       $pathlastwritten,
       $percent,
       $jobpid,
       $owner,
       $subtype,
       $classtype,
       $schedule_type,
       $priority,
       $group,
       $masterserver,
       $retentionunits,
       $retentionperiod,
       $compression,
       $kbyteslastwritten,
       $fileslastwritten,
       @files_and_tries,
     ) = parse_line(",", 0, $_);
     for( $jobtype ) {
       /0/ and do { $jobtype = "backup"    ; last };
       /1/ and do { $jobtype = "archive"   ; last };
       /2/ and do { $jobtype = "restore"   ; last };
     }
     for( $state ) {
       /0/ and do { $state = "queued"      ; last };
       /1/ and do { $state = "active"      ; last };
       /2/ and do { $state = "re-queued"   ; last };
       /3/ and do { $state = "done"        ; last };
     }
     my($filelistcount)               = shift(@files_and_tries);
     my(@files);
     for(1..$filelistcount) {
       # Skip leading and trailing whitespace
       $tmpfile = shift @files_and_tries;
       $tmpfile =~ s/^\s*//;
       $tmpfile =~ s/\s*$//;
       push( @files, $tmpfile );
     }
     my($specifiedfiles) = join(", ", @files);
     my($trycount)                    = shift(@files_and_tries);
     my(%tries,$trynum);
     foreach $trynum (1..$trycount) {
       my($trypid)                    = shift(@files_and_tries);
       my($trystunit)                 = shift(@files_and_tries);
       my($tryserver)                 = shift(@files_and_tries);
       my($trystarted)                = shift(@files_and_tries);
       my($tryelapsed)                = shift(@files_and_tries);
       my($tryended)                  = shift(@files_and_tries);
       my($trystatus)                 = shift(@files_and_tries);
       my($trystatusdescription)      = shift(@files_and_tries);
       my($trystatuscount)            = shift(@files_and_tries);
       my(@trystatuslines);
       for(1..$trystatuscount) {
         push(@trystatuslines, shift(@files_and_tries) );
       }
       my($trystatuslines) = join("\n", @trystatuslines);
       my($trykbyteswritten)      = shift(@files_and_tries);
       my($tryfileswritten)       = shift(@files_and_tries);
       %tries = (
         %tries,
         "try_${trynum}_pid"               => "$trypid",
         "try_${trynum}_stunit"            => "$trystunit",
         "try_${trynum}_server"            => "$tryserver",
         "try_${trynum}_started"           => "$trystarted",
         "try_${trynum}_elapsed"           => "$tryelapsed",
         "try_${trynum}_ended"             => "$tryended",
         "try_${trynum}_status"            => "$trystatus",
         "try_${trynum}_statusdescription" => "$trystatusdescription",
         "try_${trynum}_statuscount"       => "$trystatuscount",
         "try_${trynum}_statuslines"       => "$trystatuslines",
         "try_${trynum}_kbyteswritten"     => "$trykbyteswritten",
         "try_${trynum}_fileswritten"      => "$tryfileswritten",
       );
     }
     my($record) = {
       jobid=>              "$jobid",
       jobtype=>            "$jobtype",
       state=>              "$state",
       status=>             "$status",
       class=>              "$class",
       schedule=>           "$schedule",
       client=>             "$client",
       server=>             "$server",
       started=>            "$started",
       elapsed=>            "$elapsed",
       ended=>              "$ended",
       stunit=>             "$stunit",
       try=>                "$try",
       operation=>          "$operation",
       kbytes=>             "$kbytes",
       files=>              "$specifiedfiles",
       path=>               "$pathlastwritten",
       percent=>            "$percent",
       jobpid=>             "$jobpid",
       owner=>              "$owner",
       subtype=>            "$subtype",
       classtype=>          "$classtype",
       schedule_type=>      "$schedule_type",
       priority=>           "$priority",
       group=>              "$group",
       masterserver=>       "$masterserver",
       retentionunits=>     "$retentionunits",
       retentionperiod=>    "$retentionperiod",
       compression=>        "$compression",
       kbyteslastwritten=>  "$kbyteslastwritten",
       fileslastwritten=>   "$fileslastwritten",
       filelistcount=>      "$filelistcount",
       files=>              "$specifiedfiles",
       trycount=>           "$trycount",
     };
     %$record = (%$record, %tries);
     return %$record;
}


At 09:46 AM 11/10/2003 -0700, Donaldson, Mark wrote:
>Storage Mountain's FAQ 
>(<http://www.storagemountain.com>http://www.storagemountain.com) has a 
>nice writeup about this output.  The tricky thing to deal with is that the 
>field count per line differs by job.
>
>-M
>-----Original Message-----
>From: Nick Lefebvre [mailto:nick AT solnet.com DOT au]
>Sent: Sunday, November 09, 2003 9:02 PM
>To: veritas-bu AT mailman.eng.auburn DOT edu
>Subject: [Veritas-bu] bpdbjobs script
>
>Hi,
>
>
>
>I am running the following command:
>
>
>
># ./bpdbjobs report all_columns
>
>
>
>The output is messy.
>
>
>
>I was wondering whether anyone would have a script to turn this into 
>something that makes sense?
>
>
>
>Thanks for your help.
>
>
>
>Cheers,
>
>
>
>Nick

--=====================_346749375==.ALT
Content-Type: text/html; charset="us-ascii"

<html>
<body>
<br>
Here is a Perl function that parses this output neatly.&nbsp; For each
line of bpdbjobs output, pass it into parse_bpdbjobs() and you will<br>
get back a Perl hash of key / value pairs.<br><br>
--PLB<br><br>
<tt>use Text::ParseWords;<br><br>
##<br>
## parse_bpdbjobs()<br>
##<br>
## This function is derived from the following Veritas command:<br>
##<br>
##&nbsp;&nbsp; /usr/openv/netbackup/bin/admincmd/bpdbjobs<br>
##<br>
## --PLB 12/19/2001<br>
##<br>
## This function is Copyright (C) 2002 Peter L. Buschman.<br>
## ( Derived from the NBUX Toolkit. )<br>
##<br>
sub parse_bpdbjobs {<br>
&nbsp; $_ = shift;<br>
&nbsp; my $tmpfile;<br>
&nbsp; chomp;<br>
&nbsp; s/'/\\'/g; # Escape any un-escaped single quotes.<br>
&nbsp; ##<br>
&nbsp; ## jobid,jobtype,state,status,class,schedule, client, server,
started, elapsed,<br>
&nbsp; ## ended, stunit, try, operation, kbytes, files, pathlastwritten,
percent,<br>
&nbsp; ## jobpid, owner, subtype, classtype, schedule_type, priority,
group,<br>
&nbsp; ## masterserver, retentionunits, retentionperiod,
compression,<br>
&nbsp; ## kbyteslastwritten, fileslastwritten, filelistcount, [files]...,
trycount,<br>
&nbsp; ## [trypid, trystunit, tryserver, trystarted, tryelapsed,
tryended, trystatus,<br>
&nbsp; ## trystatusdescription, trystatuscount, [trystatuslines]...,
trybyteswritten,<br>
&nbsp; ## tryfileswritten]<br>
&nbsp; ##<br>
&nbsp;&nbsp;&nbsp; my(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $jobid,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $jobtype,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $state,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $status,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $class,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $schedule,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $client,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $server,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $started,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $elapsed,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ended,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $stunit,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $try,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $operation,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $kbytes,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $files,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $pathlastwritten,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $percent,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $jobpid,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $owner,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $subtype,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $classtype,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $schedule_type,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $priority,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $group,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $masterserver,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $retentionunits,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $retentionperiod,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $compression,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $kbyteslastwritten,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $fileslastwritten,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @files_and_tries,<br>
&nbsp;&nbsp;&nbsp; ) = parse_line(&quot;,&quot;, 0, $_);<br>
&nbsp;&nbsp;&nbsp; for( $jobtype ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /0/ and do { $jobtype =
&quot;backup&quot;&nbsp;&nbsp;&nbsp; ; last };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /1/ and do { $jobtype =
&quot;archive&quot;&nbsp;&nbsp; ; last };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /2/ and do { $jobtype =
&quot;restore&quot;&nbsp;&nbsp; ; last };<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; for( $state ) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /0/ and do { $state =
&quot;queued&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; last };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /1/ and do { $state =
&quot;active&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; last };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /2/ and do { $state =
&quot;re-queued&quot;&nbsp;&nbsp; ; last };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /3/ and do { $state =
&quot;done&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; last 
};<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;
my($filelistcount)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries); <br>
&nbsp;&nbsp;&nbsp; my(@files);<br>
&nbsp;&nbsp;&nbsp; for(1..$filelistcount) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Skip leading and trailing
whitespace<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tmpfile = shift @files_and_tries;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tmpfile =~ s/^\s*//;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tmpfile =~ s/\s*$//;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push( @files, $tmpfile );<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; my($specifiedfiles) = join(&quot;, &quot;,
@files);<br>
&nbsp;&nbsp;&nbsp;
my($trycount)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp; my(%tries,$trynum);<br>
&nbsp;&nbsp;&nbsp; foreach $trynum (1..$trycount) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trypid)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trystunit)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($tryserver)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trystarted)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($tryelapsed)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($tryended)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trystatus)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trystatusdescription)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trystatuscount)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
= shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my(@trystatuslines);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(1..$trystatuscount) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push(@trystatuslines,
shift(@files_and_tries) );<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my($trystatuslines) = join(&quot;\n&quot;,
@trystatuslines);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($trykbyteswritten)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
my($tryfileswritten)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
shift(@files_and_tries);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %tries = (<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %tries,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_pid&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$trypid&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_stunit&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$trystunit&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_server&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$tryserver&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_started&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$trystarted&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_elapsed&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$tryelapsed&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_ended&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$tryended&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_status&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$trystatus&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_statusdescription&quot; =&gt;
&quot;$trystatusdescription&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_statuscount&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$trystatuscount&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_statuslines&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$trystatuslines&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_kbyteswritten&quot;&nbsp;&nbsp;&nbsp;&nbsp; =&gt;
&quot;$trykbyteswritten&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;try_${trynum}_fileswritten&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
=&gt; &quot;$tryfileswritten&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; my($record) = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jobid=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$jobid&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jobtype=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$jobtype&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
state=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$state&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
status=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$status&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
class=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$class&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
schedule=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$schedule&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
client=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$client&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
server=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$server&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
started=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$started&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
elapsed=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$elapsed&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ended=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$ended&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
stunit=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$stunit&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
try=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$try&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
operation=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$operation&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
kbytes=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$kbytes&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
files=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$specifiedfiles&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
path=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$pathlastwritten&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
percent=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$percent&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
jobpid=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$jobpid&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
owner=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$owner&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
subtype=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$subtype&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
classtype=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$classtype&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
schedule_type=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$schedule_type&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
priority=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$priority&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
group=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$group&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
masterserver=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$masterserver&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
retentionunits=&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$retentionunits&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retentionperiod=&gt;&nbsp;&nbsp;&nbsp;
&quot;$retentionperiod&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
compression=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$compression&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kbyteslastwritten=&gt;&nbsp;
&quot;$kbyteslastwritten&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileslastwritten=&gt;&nbsp;&nbsp;
&quot;$fileslastwritten&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
filelistcount=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$filelistcount&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
files=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$specifiedfiles&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
trycount=&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;$trycount&quot;,<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; %$record = (%$record, %tries);<br>
&nbsp;&nbsp;&nbsp; return %$record;<br>
}<br><br>
<br>
</tt>At 09:46 AM 11/10/2003 -0700, Donaldson, Mark wrote:<br>
<blockquote type=cite class=cite cite><font face="arial" size=2 
color="#0000FF">Storage
Mountain's FAQ
(<a href="http://www.storagemountain.com";>http://www.storagemountain.com</a>)
has a nice writeup about this output.&nbsp; The tricky thing to deal with
is that the field count per line differs by job.</font><br>
&nbsp;<br>
<font face="arial" size=2 color="#0000FF">-M</font><br>

<dl>
<dd><font face="tahoma" size=2>-----Original Message-----<br>

<dd>From:</b> Nick Lefebvre
[<a href="mailto:nick AT solnet.com DOT au" eudora="autourl">mailto:nick AT 
solnet.com DOT au</a>]<br>

<dd>Sent:</b> Sunday, November 09, 2003 9:02 PM<br>

<dd>To:</b> veritas-bu AT mailman.eng.auburn DOT edu<br>

<dd>Subject:</b> [Veritas-bu] bpdbjobs script<br><br>
</font>
<dd><font face="arial" size=2>Hi,<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2>I am running the following command:<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2># ./bpdbjobs report all_columns<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2>The output is messy.<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2>I was wondering whether anyone would have a
script to turn this into something that makes sense?<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2>Thanks for your help.<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2>Cheers,<br>
</font><br>

<dd>&nbsp;<br><br>

<dd><font face="arial" size=2>Nick<br>
</font>
</dl></blockquote></body>
</html>

--=====================_346749375==.ALT--


<Prev in Thread] Current Thread [Next in Thread>