发布网友 发布时间:2022-04-20 07:33
共2个回答
热心网友 时间:2023-07-04 01:53
nagios用的不是root, su 到nagios用户, 再执行命令行。 看看结果。
执行完脚本后, 执行echo $? 0代表OK, 1代表WARNING, 2代表CRITICAL。
个人感觉应该是脚本权限不足。
脚本逻辑比较简单。 你可以自己看一下。
$status = $ERRORS{OK}; $message = '';
check_megaide if( -d "/proc/megaide" ); # Linux, hardware RAID
check_mdstat if( -f "/proc/mdstat" ); # Linux, software RAID
check_lsraid if( -x "/sbin/lsraid" ); # Linux, software RAID
check_metastat if( -x "/usr/sbin/metastat" ); # Solaris, software RAID
check_vg if( -x "/usr/sbin/lsvg" ); # AIX LVM
check_ips if( -x "/usr/local/bin/ipssend" ); # Serveraid
if( $message ) {
if( $status == $ERRORS{OK} ) {
print "OK: ";
} elsif( $status == $ERRORS{WARNING} ) {
print "WARNING: ";
} elsif( $status == $ERRORS{CRITICAL} ) {
print "CRITICAL: ";
}
print "$message\n";
} else {
print "No RAID configuration found.\n";
}
exit $status;追问
谢谢你的回答。这两个脚本我用nagios运行了,echo $?结果给你看,都没有问题啊。我都觉得是权限的问题,但找不到哪里有问题?还请明示啊。
热心网友 时间:2023-07-04 01:53
应该是权限问题,你可以在你的脚本中,内嵌一条`whoami`的命令,测试一下脚本中是用那个用户启动的脚本。