http://www.perlmonks.org?node_id=537976
Category: utility
Author/Contact Info jefferyschmitz@mac.com
Description: Tells you what is getting backed up and what isn't - cheeeeers
#!/usr/bin/perl -w

#  Requires NBU module installed on host machine.....
use strict;

use Getopt::Std;

my %opts;
getopts('ucd', \%opts);

use NBU;
NBU->debug($opts{'d'});

NBU::Class->populate;

my @clients;
if ($#ARGV > -1 ) {
  for my $clientName (@ARGV) {
    push @clients, NBU::Host->new($clientName);
  }
}
else {
  NBU::Host->populate(1);
  @clients = (sort {$a->name cmp $b->name} (NBU::Host->list));
}

foreach my $client (@clients) {
  my $cn = $client->name;

  print "$cn:";
  my %mountPointList = $client->coverage;
  foreach my $mp (sort (keys %mountPointList)) {
    my $clR = $mountPointList{$mp};
    my $mpStatus = "\t$mp:";
    my $disposition;
    my $covered;
    if ($clR) {
      foreach my $class (@$clR) {
    my $cn = $class->name;
    if ($class->active) {
      $mpStatus .= " $cn" if ($opts{'c'} || !$opts{'u'});
      $covered += 1;
    }
    else {
      $mpStatus .= " ($cn)" if ($opts{'u'} || !$opts{'c'});
    }
      }
    }
    else {
      $mpStatus .= " not covered";
    }
    if ((!$opts{'u'} && !$opts{'c'}) ||
    ($opts{'u'} && !$covered) ||
    ($opts{'c'} && $covered)) {
      print "\n$mpStatus";
    }
  }

  if ($opts{'c'} || !$opts{'u'}) {
    my $sep = "\n\tadditional active classes are: ";
    foreach my $class ($client->classes) {
      if ($class->active && !$class->providesCoverage) {
    print $sep.$class->name;
    $sep = " ";
      }
    }
  }

  if ($opts{'u'} || !$opts{'c'}) {
    my $sep = "\n\tadditional inactive classes are: ";
    foreach my $class ($client->classes) {
      if (!$class->active && !$class->providesCoverage) {
    print $sep."(".$class->name.")";
    $sep = " ";
      }
    }
  }
  print "\n";
}
Replies are listed 'Best First'.
Re: Are you Covered?
by wazoox (Prior) on Mar 20, 2006 at 16:27 UTC
    Don't forget to mention it's for NetBackup.