2020-06-17 09:26:08 +12:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2020-07-18 11:59:17 +12:00
|
|
|
VERSION="0.2 (beta)"
|
2020-06-17 09:26:08 +12:00
|
|
|
|
|
|
|
IFS=$'\n\t'
|
|
|
|
GLOBIGNORE="*"
|
|
|
|
|
|
|
|
BIN_NC="$(command -v nc)"
|
|
|
|
BIN_SED="$(command -v sed)"
|
|
|
|
|
|
|
|
pval="6556"
|
|
|
|
|
2020-07-18 11:59:17 +12:00
|
|
|
EXITCODE=3
|
2020-06-17 09:26:08 +12:00
|
|
|
|
|
|
|
while getopts "Vha:H:p:" opt; do
|
|
|
|
case $opt in
|
2021-03-18 20:07:25 +01:00
|
|
|
V) printf 'check_mrpe v%s\n' "$VERSION"
|
2020-07-18 11:59:17 +12:00
|
|
|
exit 0
|
2020-06-17 09:26:08 +12:00
|
|
|
;;
|
|
|
|
h) hflag=1
|
|
|
|
;;
|
|
|
|
a) aflag=1
|
|
|
|
aval="$OPTARG"
|
|
|
|
;;
|
|
|
|
H) Hflag=1
|
|
|
|
Hval="$OPTARG"
|
|
|
|
;;
|
2021-03-18 20:07:25 +01:00
|
|
|
p) pval="$OPTARG"
|
2020-06-17 09:26:08 +12:00
|
|
|
;;
|
|
|
|
\?) hflag=1
|
2020-07-18 11:59:17 +12:00
|
|
|
EXITCODE=0
|
2020-06-17 09:26:08 +12:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
if ! [ "$Hflag" ] && ! [ "$hflag" ]; then
|
|
|
|
printf "Error: Host not specified\n"
|
|
|
|
hflag=1
|
|
|
|
EXITCODE=1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$hflag" ]; then
|
|
|
|
printf "check_mrpe:\n"
|
|
|
|
printf "Usage:\n"
|
|
|
|
printf " check_mrpe [-H host] [-p port] [-a app]\n"
|
|
|
|
exit $EXITCODE
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$aflag" ];
|
|
|
|
then
|
|
|
|
SED_CMD="s/\((.*) $aval [0-9] \)\(.*\)/\2/p"
|
2020-07-18 11:59:17 +12:00
|
|
|
SED_CMD_STATUS="s/(.*) $aval \([0-9]\) \(.*\)/\1/p"
|
2020-06-17 09:26:08 +12:00
|
|
|
else
|
|
|
|
SED_CMD="s/(.*) \(.*\) [0-9] \(.*\)/\1 \2/p"
|
|
|
|
fi
|
|
|
|
|
2021-03-18 12:24:30 +01:00
|
|
|
for i in $($BIN_NC -w 1 "$Hval" "$pval" 2>&1 | $BIN_SED '/^<<<mrpe>>>/,/^<<</{//!b};d') ; do
|
|
|
|
echo "$i" | $BIN_SED -n "$SED_CMD"
|
2020-07-18 11:59:17 +12:00
|
|
|
if [ "$aflag" ];
|
|
|
|
then
|
2021-03-18 12:24:30 +01:00
|
|
|
STATUSCODE=$(echo "$i" | $BIN_SED -n "$SED_CMD_STATUS")
|
2020-07-18 11:59:17 +12:00
|
|
|
if [ "$STATUSCODE" ];
|
|
|
|
then
|
|
|
|
case $STATUSCODE in
|
|
|
|
0)
|
|
|
|
EXITCODE=0
|
|
|
|
;;
|
|
|
|
1)
|
|
|
|
EXITCODE=1
|
|
|
|
;;
|
|
|
|
2)
|
|
|
|
EXITCODE=2
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
EXITCODE=3
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
fi
|
2020-06-17 09:26:08 +12:00
|
|
|
done
|
2021-01-02 02:07:23 +00:00
|
|
|
|
2021-03-18 20:07:25 +01:00
|
|
|
exit $EXITCODE
|