nagios 参数中的空格破坏了命令 - check_NRPE

nagios 参数中的空格破坏了命令 - check_NRPE

我有一个 Nagios NRPE 命令无法接受包含空格的参数。我将在最后列出我尝试过的所有方法。以下是我的设置示例:

在 command.cfg 文件中:

    command_line   $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c $ARG1$ -a $ARG2$ $ARG3$

在 nsclient.ini 文件中:

check_iis = cmd /c echo scripts\check_iis.ps1 $ARG1$ ; exit($lastexitcode) | powershell.exe -ExecutionPolicy Bypass  -command -

这是从 windows.cfg 运行的命令:

check_command           check_nrpe_2args!check_iis!"-checktype Sites -EXCLUDE asdf.com,Default Web Site"

此命令可以排除 asdf.com,但是一旦添加“默认网站”,它就会失败并出现以下错误:

C:Program FilesNSClient++scriptscheck_iis.ps1 : Missing an argument for
parameter 'CheckType'. Specify a parameter of type 'System.String' and try 
again.

我尝试在commands.cfg和nsclient.ini中为$args添加引号。在ini文件中,这没有任何区别。它导致commands.cfg中的命令失败

我在 Windows 上尝试过的其他版本

项目清单

配置文件:

check_iis!Sites!Exclude Default Web Site,asdf.com
check_iis!Sites!Exclude "Default Web Site,asdf.com"
check_iis!-Sites -exclude "Default Web Site,asdf.com"
check_iis!Sites!Exclude!"Default Web Site,asdf.com"
check_iis!Sites!-exclude ""Default Web Site",asdf.com"
check_iis!Sites!-exclude asdf.com /"Default Web Site/"

我的意思是还有更多,但对于同一命令的不同变体,列表会不断增加。这真的有点令人尴尬,哈哈。

提前致谢

答案1

在命令定义中将 $ARG2$ 放在引号内check_nrpe_2args(并删除不需要的 $ARG3$)

您可能还需要在 ARG 周围添加额外的引号,并将其转义,以便第一个 shell 不会吃掉它们。

相关内容