use strict;
use warnings;
my %unitMap;
my $skipNext;
my $cmd = "hpacucli ctrl slot=0 pd all show";
open my $fd, "$cmd|";
while (my $row = <$fd>) {
$row =~ /^$/ and next;
$row =~ s/[,|)|(]//g;
chomp $row;
next if $row =~ /^Smart/g;
$row =~ s/^\s+//;
if( $row =~ /^unassigned/ ){
$skipNext = 2;
next;
print "$row\n";
}
close($fd);
Actual Data : This includes leading white spaces . I have exxactly pasted the Command O/P here.
data
Smart Array P410i in Slot 0 (Embedded)
array A
physicaldrive 2C:1:1 (port 2C:box 1:bay 1, SAS, 1 TB, OK)
physicaldrive 2C:1:2 (port 2C:box 1:bay 2, SAS, 1 TB, OK)
array B
physicaldrive 2C:1:3 (port 2C:box 1:bay 3, SAS, 1 TB, OK)
physicaldrive 2C:1:4 (port 2C:box 1:bay 4, SAS, 1 TB, OK)
array C
physicaldrive 3C:1:5 (port 3C:box 1:bay 5, SAS, 1 TB, OK)
physicaldrive 3C:1:6 (port 3C:box 1:bay 6, SAS, 1 TB, OK)
array D
physicaldrive 3C:1:7 (port 3C:box 1:bay 7, SAS, 1 TB, OK)
physicaldrive 3C:1:8 (port 3C:box 1:bay 8, SAS, 1 TB, OK)
array E
physicaldrive 4C:2:1 (port 4C:box 2:bay 1, SAS, 1 TB, OK)
physicaldrive 4C:2:2 (port 4C:box 2:bay 2, SAS, 1 TB, OK)
array F
physicaldrive 4C:2:3 (port 4C:box 2:bay 3, SAS, 1 TB, OK)
physicaldrive 4C:2:4 (port 4C:box 2:bay 4, SAS, 1 TB, OK)
array G
physicaldrive 5C:2:5 (port 5C:box 2:bay 5, SAS, 1 TB, OK)
physicaldrive 5C:2:6 (port 5C:box 2:bay 6, SAS, 1 TB, OK)
array H
physicaldrive 5C:2:7 (port 5C:box 2:bay 7, SAS, 1 TB, OK)
physicaldrive 5C:2:8 (port 5C:box 2:bay 8, SAS, 1 TB, OK)
array I
physicaldrive 6C:3:1 (port 6C:box 3:bay 1, SAS, 1 TB, OK)
physicaldrive 6C:3:2 (port 6C:box 3:bay 2, SAS, 1 TB, OK)
array J
physicaldrive 6C:3:3 (port 6C:box 3:bay 3, SAS, 1 TB, OK)
physicaldrive 6C:3:4 (port 6C:box 3:bay 4, SAS, 1 TB, OK)
array K
physicaldrive 7C:3:5 (port 7C:box 3:bay 5, SAS, 1 TB, OK)
physicaldrive 7C:3:6 (port 7C:box 3:bay 6, SAS, 1 TB, OK)
unassigned
physicaldrive 7C:3:7 (port 7C:box 3:bay 7, SAS, 1 TB, OK)
physicaldrive 7C:3:8 (port 7C:box 3:bay 8, SAS, 1 TB, OK)
--> Actual O/P
data
array A
physicaldrive 2C:1:1 port 2C:box 1:bay 1 SAS 1 TB OK
physicaldrive 2C:1:2 port 2C:box 1:bay 2 SAS 1 TB OK
array B
physicaldrive 2C:1:3 port 2C:box 1:bay 3 SAS 1 TB OK
physicaldrive 2C:1:4 port 2C:box 1:bay 4 SAS 1 TB OK
array C
physicaldrive 3C:1:5 port 3C:box 1:bay 5 SAS 1 TB OK
physicaldrive 3C:1:6 port 3C:box 1:bay 6 SAS 1 TB OK
array D
physicaldrive 3C:1:7 port 3C:box 1:bay 7 SAS 1 TB OK
physicaldrive 3C:1:8 port 3C:box 1:bay 8 SAS 1 TB OK
array E
physicaldrive 4C:2:1 port 4C:box 2:bay 1 SAS 1 TB OK
physicaldrive 4C:2:2 port 4C:box 2:bay 2 SAS 1 TB OK
array F
physicaldrive 4C:2:3 port 4C:box 2:bay 3 SAS 1 TB OK
physicaldrive 4C:2:4 port 4C:box 2:bay 4 SAS 1 TB OK
array G
physicaldrive 5C:2:5 port 5C:box 2:bay 5 SAS 1 TB OK
physicaldrive 5C:2:6 port 5C:box 2:bay 6 SAS 1 TB OK
array H
physicaldrive 5C:2:7 port 5C:box 2:bay 7 SAS 1 TB OK
physicaldrive 5C:2:8 port 5C:box 2:bay 8 SAS 1 TB OK
array I
physicaldrive 6C:3:1 port 6C:box 3:bay 1 SAS 1 TB OK
physicaldrive 6C:3:2 port 6C:box 3:bay 2 SAS 1 TB OK
array J
physicaldrive 6C:3:3 port 6C:box 3:bay 3 SAS 1 TB OK
physicaldrive 6C:3:4 port 6C:box 3:bay 4 SAS 1 TB OK
array K
physicaldrive 7C:3:5 port 7C:box 3:bay 5 SAS 1 TB OK
physicaldrive 7C:3:6 port 7C:box 3:bay 6 SAS 1 TB OK
--> The same command hpacucli ctrl slot=0 pd all show was ran on the command line and I have assigned the command to $cmd variable in the script . No error messages .
--> O/P expected to produce .
data
array A physicaldrive 2C:1:1 port 2C:box 1:bay 1 SAS 1 TB OK physicald
+rive 2C:1:2 port 2C:box 1:bay 2 SAS 1 TB OK
array B physicaldrive 2C:1:3 port 2C:box 1:bay 3 SAS 1 TB OK physicald
+rive 2C:1:4 port 2C:box 1:bay 4 SAS 1 TB OK
array C physicaldrive 3C:1:5 port 3C:box 1:bay 5 SAS 1 TB OK physicald
+rive 3C:1:6 port 3C:box 1:bay 6 SAS 1 TB OK
array D physicaldrive 3C:1:7 port 3C:box 1:bay 7 SAS 1 TB OK physicald
+rive 3C:1:8 port 3C:box 1:bay 8 SAS 1 TB OK
array E physicaldrive 4C:2:1 port 4C:box 2:bay 1 SAS 1 TB OK physicald
+rive 4C:2:2 port 4C:box 2:bay 2 SAS 1 TB OK
array F physicaldrive 4C:2:3 port 4C:box 2:bay 3 SAS 1 TB OK physicald
+rive 4C:2:4 port 4C:box 2:bay 4 SAS 1 TB OK
array G physicaldrive 5C:2:5 port 5C:box 2:bay 5 SAS 1 TB OK physicald
+rive 5C:2:6 port 5C:box 2:bay 6 SAS 1 TB OK
array H physicaldrive 5C:2:7 port 5C:box 2:bay 7 SAS 1 TB OK physicald
+rive 5C:2:8 port 5C:box 2:bay 8 SAS 1 TB OK
array I physicaldrive 6C:3:1 port 6C:box 3:bay 1 SAS 1 TB OK physicald
+rive 6C:3:2 port 6C:box 3:bay 2 SAS 1 TB OK
array J physicaldrive 6C:3:3 port 6C:box 3:bay 3 SAS 1 TB OK physicald
+rive 6C:3:4 port 6C:box 3:bay 4 SAS 1 TB OK
array K physicaldrive 7C:3:5 port 7C:box 3:bay 5 SAS 1 TB OK physicald
+rive 7C:3:6 port 7C:box 3:bay 6 SAS 1 TB OK
|