#! /usr/bin/perl use strict ; use warnings ; my %OPTS = ( spares => 'blockdevscan' , status => 'rgdisplay' , members => 'rmstatus RGROUP1' ) ; my $OPTS = join ',', sort keys %OPTS ; my $prog = substr $0, rindex ( $0, '/' ) + 1 ; my $Usage = < ; close CMD ; printf "LINES :\n%s", join '', @lines if $opt{d} ; if ( $CLAS eq 'members' ) { $val = grep /^\s*\d+\s+ONLINE/, @lines ; } elsif ( $CLAS eq 'spares' ) { $val = grep /^\s*\d+\s+.*\*HOTSPARE\*/, @lines ; } elsif ( $CLAS eq 'status' ) { my $line = ( grep /^RGROUP1/, @lines ) [ 0 ] ; my $stat = ( split ' ', $line ) [ 7 ] ; $val = ( $stat and $stat eq 'ONLINE' ) ? 1 : 0 ; } my $res = $TARG - $val ; if ( $opt{v} ) { printf "class $CLAS\n" ; printf "target $TARG\n" ; printf "found $val\n" ; printf "result $res\n" ; } print "$res\n" ;