希望这可以做到。我试图在我的盒子上解析rad数组的各个状态的mdstat。我发现有很多脚本可以执行此操作,但是没有一个脚本一次只能列出一个设备。我的目标是能够运行check_raid /dev/md0
之类的命令,并且只返回md0:UU
或md0:_U
或其他内容的状态,而不是所有可用的raid。
我已经粘贴了我觉得最接近完成此代码的代码。最后我会把它放在nagios的检查命令中,我有图形设置来显示状态随时间的变化。
while( $l = <MDSTAT> ) {
#print "$l\n";
if( $l =~ /^(\S+)\s+:/ ) { $n = $1; $f = ''; next; }
#print "$l\n";
if( $l =~ /(\S+)\[\d+\]\(F\)/ ) { $f = $1; next; }
#print "$l\n";
if( $l =~ /\s*.*\[([U_]+)\]/ ) {
$s = $1;
next if(!valid($n));
if($s =~ /_/ ) {
$status = $ERRORS{CRITICAL};
$message .= "md:$n:$f:$s ";
} else {
$message .= "md:$n:$s ";
}
}
}