use strict; use warnings; my %vhosts; my $host; #open (LSMAP, "-|", "/usr/ios/cli/ioscli lsmap -all") or die $!; while (defined(my $lsm = )) { if ($lsm =~ /^Backing device\s+(\w+)\.\w+$/) { push @{$vhosts{$host}}, $1; next; } my ($p1, $p2, $p3) = split /\s+/, $lsm; $host = $p1 if defined $p3 && $p1 !~ /^(SVSA|-+)$/; } for my $host (sort keys %vhosts) { print "lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter $host -lu $_\n" for @{$vhosts{$host}}; } __DATA__ SVSA Physloc Client Partition ID --------------- -------------------------------------------- ------------------ vhost0 U9117.MMD.218A8B7-V1-C2 0x0000000b VTD vtscsi0 Status Available LUN 0x8100000000000000 Backing device l02duapofdev_r1.58ff94782d7c325acc49a8dd9c04bb1e Physloc Mirrored N/A VTD vtscsi1 Status Available LUN 0x8200000000000000 Backing device l02duapofdev_b1.0ee86903d4951ce38a9b691b322ff1d2 Physloc Mirrored N/A SVSA Physloc Client Partition ID --------------- -------------------------------------------- ------------------ -------------------------------------------- ------------------ vhost3 U9117.MMD.218A8B7-V1-C14 0x00000000 VTD NO VIRTUAL TARGET DEVICE FOUND SVSA Physloc Client Partition ID --------------- -------------------------------------------- ------------------ vhost5 U9117.MMD.218A8B7-V1-C16 0x00000007 VTD vtscsi22 Status Available LUN 0x8100000000000000 Backing device l02duapofqa_r1.4746343ea4f12fe1092615c8734d9844 Physloc Mirrored N/A VTD vtscsi23 Status Available LUN 0x8200000000000000 Backing device l02duapofqa1_d1.449583501d812f69e6189ea7f4a29e06 Physloc Mirrored N/A #### lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost0 -lu l02duapofdev_r1 lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost0 -lu l02duapofdev_b1 lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost5 -lu l02duapofqa_r1 lu -map -clustername asccl-eta1 -sp stp-eta1 -vadapter vhost5 -lu l02duapofqa1_d1