This was exactly the scenario that happened to me when a company I consulted at changed their retention periods. The change of retention periods from 1 year to 1 month meant they wanted to free up all the tapes that contained images that were more then a month old.
The solution to the problem was a script that basically does the following:
1) Reads in a list of media id's from a file.
2) Determine which media server the media id is assigned.
3) Expire the media id from the Netbackup catalog.
The script is here:
#!/usr/bin/perl
$master="hostname of master server";
open DATA, "cat /home/schmaubj/media.list|";
while () {
$mediaid = $_;
chomp($mediaid);
open DATA2, "/usr/openv/netbackup/bin/admincmd/bpmedialist -U -m $mediaid|";
while () {
$line = $_;
chomp($line);
if ($line =~ /Server Host/) {
($junk,$mhost) = split(/=/,$line);
chomp($mhost);
$mhost =~ s/ *$//;
$mhost =~ s/^ *//;
}
}
close (DATA2);
print "Media ID: $mediaid\n";
print "Media Server Host: $mhost\n";
print "Expiring now...\n";
$expire=`/usr/openv/netbackup/bin/admincmd/bpexpdate -force -d 0 -m $mediaid -host $mhost -M $master`;
}
close (DATA);