Updated Makefile with ENV tests and updted ENV to pull SERVICE: NAME WARN CRIT values with -F
This commit is contained in:
@@ -11,6 +11,7 @@ myService=""
|
||||
myContact=""
|
||||
myString=""
|
||||
doNumber=""
|
||||
doPipe=""
|
||||
doLower=""
|
||||
doUpper=""
|
||||
doVerbose=""
|
||||
@@ -20,22 +21,24 @@ do_help() {
|
||||
cat << HELP_EOF
|
||||
This utility is designed to be called by the ARGx parameters of a Nagios configuration as one of the following:
|
||||
|
||||
\$\$(\$USER1\$/env [-n <var>] [-t <default>] [-f <field>] [-d <delim>] [-s <val>] [-u|-l] [-H|-S|-C <suffix>] [-v]
|
||||
\$\$(\$USER1\$/env -N [-H suffix]
|
||||
\$\$(\$USER1\$/env [-n <var>] [-t <default>] [-f|-F <field>] [-d <delim>] [-s <val>] [-u|-l] [-H|-S|-C <suffix>] [-v]
|
||||
\$\$(\$USER1\$/env -N [-NP] [-H suffix]
|
||||
|
||||
|
||||
Where:
|
||||
|
||||
var the name of a case-insensitive NAGIOS_variable (defaults to "servicedesc")
|
||||
default a default value if \$NAGIOS_var\$ is blank (case sensitive)
|
||||
field an awk-compatible field number (potentially to use with <delim>)
|
||||
field an awk-compatible field number (potentially to use with <delim>) (see below)
|
||||
delim an awk-compatible field delimiter (defaults to space and colon)
|
||||
-u Convert the output to uppercase
|
||||
-l Convert the output to lowercase
|
||||
-p Convert / to | (mainly for disk names in NCPA checks)
|
||||
suffix Take var result and use the it to get NAGIOS__[HOST|SERVICE|CONTACT]<result><suffix>
|
||||
-v Be verbose (only for debugging)
|
||||
-s The result must match this value or else it will return blank
|
||||
--num The result will have all non-numbers stripped from it
|
||||
-NP Returns NAGIOS__HOSTNCPAPORT (implied default of 5693)
|
||||
-N Look for NAGIOS__HOSTNCPA<suffix> (defaults to TOKEN)
|
||||
Can do double lookup if -H is specified directly: -H TOKEN will find NAGIOS__HOSTNCPATOKEN=Level1 which then finds NAGIOS__HOSTLEVEL1TOKEN=Secret
|
||||
Or -H PASS will find NAGIOS__HOSTNCPAPASS=Level2 which will then find NAGIOS__HOSTLEVEL2PASS=SuperSecret
|
||||
@@ -44,8 +47,9 @@ Where:
|
||||
The value will always be trimmed of leading and/or trailing spaces/tabs.
|
||||
|
||||
If -f is used, then the result will be as if the request were as follows, unless the field starts with a negative, in which case it will read from the last word forward:
|
||||
|
||||
echo \$NAGIOS_var\$ | awk -F <delim> '{print $<field>}'
|
||||
If -F is used, -d is forced to " " and the field number reflects is the first, second, or third of the last three fields
|
||||
Ex: Disk check on / 80 90 With -F 1=/, -F 2=80, -F 3=90
|
||||
|
||||
Examples (service_description is assumed to be "MySQL Check: myDatabase performance"):
|
||||
|
||||
@@ -71,12 +75,15 @@ while [ -n "$1" ]; do
|
||||
-t) varDefault="$2"; shift 2;;
|
||||
-d) myDelim="$2"; shift 2;;
|
||||
-f) myField="$2"; shift 2;;
|
||||
-F) myDelim=" "; myField=$(($2-4)); shift 2;;
|
||||
-H) myHost="$2"; shift 2;;
|
||||
-S) myService="$2"; shift 2;;
|
||||
-C) myContact="$2"; shift 2;;
|
||||
-s) myString="$2"; shift 2;;
|
||||
--num) doNumber="true"; shift 1;;
|
||||
-N) doNCPA="true"; shift 1;;
|
||||
-NP) varName="NAGIOS__HOSTNCPAPORT"; varDefault="5693"; shift 1;;
|
||||
-p) doPipe="true"; shift 1;;
|
||||
-u) doUpper="true"; shift 1;;
|
||||
-l) doLower="true"; shift 1;;
|
||||
-v) doVerbose="true"; shift 1;;
|
||||
@@ -135,6 +142,7 @@ fi
|
||||
|
||||
[ -n "$myString" -a "$myString" != "$varValue" ] && varValue=""
|
||||
[ -n "$doNumber" ] && varValue=`echo $varValue | tr -d -c "0-9"`
|
||||
[ -n "$doPipe" ] && varValue=`echo $varValue | tr "/" "|"`
|
||||
|
||||
[ -z "$varValue" ] && varValue="$varDefault"
|
||||
echo "$varValue"
|
||||
|
||||
Reference in New Issue
Block a user