我有一个通过 check_nrpe 调用的 powershell 脚本。当我进行被动检查时,我看到退出代码/返回值为 1,但它仍被视为状态 OK 而不是 CRITICAL。
基本上这个脚本只是检查目标文件夹..\bar是否为空。如果它为空,则脚本返回“0”,触发Nagios 中的OK状态。如果它的文件在等待 25 秒后仍然没有移动,那么它会返回“1”,这会在 Nagios 中触发 CRITICAL 状态。
我在文件夹中保留了几个文件,可以看到返回值为“1”。但是 nagios 仍然将其视为状态OK。
使用以下命令进行被动检查。
$ /usr/lib64/nagios/plugins/check_nrpe -H 10.XX.X.XXX -c check_kpis -t 30
输出
1
脚本如下。
$path = "D:\foo\bar"
$flagged1 = "D:\temp\flag1.txt"
$flagged2 = "D:\temp\flag2.txt"
$contents = Get-ChildItem -Path $path -Force -Recurse
if ( $contents.count -gt 0 )
{
$contents.Name | Out-File -FilePath $flagged1
Start-Sleep -s 25
$contents = Get-ChildItem -Path $path -Force -Recurse
$contents.Name | Out-File -FilePath $flagged2
if ( $contents.count -gt 0 )
{
$diff = Compare-Object -ReferenceObject $(Get-Content $flagged1) -DifferenceObject $(Get-Content $flagged2) -IncludeEqual
If ($diff.SideIndicator -eq "==")
{
return 1
exit
}
else
{
return 0
exit
}
}
else
{
return 0
exit
}
}
else
{
return 0
exit
}
谁能建议这里有什么问题?