NSClient ++: script esterno con argomenti opzionali

Sto cercando di definire uno script esterno che richiederebbe gli argomenti facoltativi in ​​NSClient ++ 0.4.1 in Windows. Seguendo il codice di esempio nsclient-full.ini che ho definito

 mycheck=cmd /C echo C:\mydir\myscript.ps1 %ARGS% | powershell.exe -command - 

che rende semplicemente la string %ARGS% passata come l'unico argomento a myscript.ps1 , non import ciò che specifico nella mia chiamata tramite NRPE (usando il check_nrpe Nagios se questo è importnte). Ho poi cercato di riscrivere la definizione

 mycheck=cmd /C echo C:\mydir\myscript.ps1 $ARG1$ $ARG2$ | powershell.exe -command - 

( myscript.ps1 richiederebbe fino a due argomenti), che contribuisce un po '. Alless se vengono forniti due argomenti, posso scaricarli tramite l'arrays args[] . Il problema si avvia quando la chiamata ha less di due argomenti – in questo caso le stringhe letterali $ARG2 e $ARG1$ vengono passate come argomenti. La gestione di questo caso nel codice di myscript.ps1 rende al meglio l'integer process di elaborazione dell'ordine.

C'è un modo sano di definire parametri facoltativi a uno script esterno che non passerebbe i nomi delle variables di NSClient se non è stato specificato alcun parametro?

  • Eseguire uno script personalizzato / exe tramite il server web nsclient ++
  • One Solution collect form web for “NSClient ++: script esterno con argomenti opzionali”

    Innanzitutto il% ARGS% tingy è per un wrapper (che è qualcos'altro), forse dovrei rinominarlo $ ARGS $ per renderlo less confuso?

    Comunque NSClient ++ prima di 0.4.2.61 non support argomenti variables. Questo è stato aggiunto in 0.4.2.61 tuttavia come per richiesta in questo biglietto.

    A partire da NSClient ++ 0.4.2.61 ci sono due nuove opzioni $ ARGS $ e $ ARGS "$ il secondo citerà tutte le stringhe.

    Configurazione in nsclient.ini:

     [/settings/external scripts/scripts] x=scripts\\check_test.bat $ARGS$ y=scripts\\check_test.bat $ARGS"$ 

    Esecuzione della versione non quotata:

     x 1 "2 3" 4 5 D ext-script Command line: scripts\\check_test.bat 1 2 3 4 5 L client OK: Test arguments are: (1 2 3) 

    Esecuzione della versione citata:

     y 1 "2 3" 4 5 D ext-script Command line: scripts\\check_test.bat "1" "2 3" "4" "5" L client OK: Test arguments are: ("1" "2 3" "4") 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.