У меня есть команда Nagios NRPE, которая не может принять аргумент, содержащий пробел. Я включу список всего, что пробовал в самом конце. Вот примеры моей настройки:
В файле commands.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.
Я пробовал добавлять кавычки вокруг $ args как в commands.cfg, так и в nsclient.ini. В ini-файле никакой разницы не было. Это привело к сбою команды в командах .cfg
Другие варианты, которые я пробовал из окон
Элемент списка
.cfg:
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/"
Я имею в виду, что есть еще несколько, но список можно продолжать и продолжать для разных вариантов одной и той же команды. Это действительно смущает, смеется.
заранее спасибо
Поместите котировки около $ ARG2 $ в свой check_nrpe_2args
определение команды (и избавьтесь от ненужного $ ARG3 $)
Вам также может потребоваться добавить дополнительные кавычки в ARG, чтобы первая оболочка их не съела.