#!/usr/local/bin/perl use FileHandle; use Data::Dumper; my $verbose =1; my $in = new FileHandle; my $drives = {}; my $out = {}; $in->open("/var/tsm/base/etc/device-correspondence.csv"); while (<$in>) { # print; chomp; my ($tsm,$sn) = split(/,/); $drives->{$sn} = $tsm; } # print Dumper($drives); $in->open("/usr/sbin/lscfg | grep rmt |"); while (<$in>) { my ($junk,$rmt,@junk) = split; # print $rmt,"\n"; my (@tape) = `/usr/sbin/lscfg -vl $rmt`; my ($snline) = grep{/Serial Number\.+(\d+)$/} @tape; # print $snline; my ($sn) = $snline =~ /Serial Number\.+(\d+)$/; my $drive = $drives->{$sn}; $verbose && print "$rmt:\tNew entry for '$drive'\n"; $out->{$sn} = new FileHandle(">./serial-$sn-$drive") unless defined($out->{$sn}); $out->{$sn}->print(@tape); $out->{$sn}->print( `/usr/sbin/lsdev -l $rmt` ); }