1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00

83 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env bash
VERSION="0.2 (beta)"
IFS=$'\n\t'
GLOBIGNORE="*"
BIN_NC="$(command -v nc)"
BIN_SED="$(command -v sed)"
pval="6556"
EXITCODE=3
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"
exit 0
;;
h) hflag=1
;;
a) aflag=1
aval="$OPTARG"
;;
H) Hflag=1
Hval="$OPTARG"
;;
2021-03-18 20:07:25 +01:00
p) pval="$OPTARG"
;;
\?) hflag=1
EXITCODE=0
;;
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"
SED_CMD_STATUS="s/(.*) $aval \([0-9]\) \(.*\)/\1/p"
else
SED_CMD="s/(.*) \(.*\) [0-9] \(.*\)/\1 \2/p"
fi
for i in $($BIN_NC -w 1 "$Hval" "$pval" 2>&1 | $BIN_SED '/^<<<mrpe>>>/,/^<<</{//!b};d') ; do
echo "$i" | $BIN_SED -n "$SED_CMD"
if [ "$aflag" ];
then
STATUSCODE=$(echo "$i" | $BIN_SED -n "$SED_CMD_STATUS")
if [ "$STATUSCODE" ];
then
case $STATUSCODE in
0)
EXITCODE=0
;;
1)
EXITCODE=1
;;
2)
EXITCODE=2
;;
*)
EXITCODE=3
;;
esac
fi
fi
done
2021-03-18 20:07:25 +01:00
exit $EXITCODE