Monday, February 22, 2010

Expire List of Tapes in Netbackup


When working in a large Netbackup environment, there often comes a time when you need to expire a large amount of tapes all at once.

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);