diff --git a/nred2lox.sh b/nred2lox.sh new file mode 100644 index 0000000..4eb96d9 --- /dev/null +++ b/nred2lox.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +#Funktionen +function showUsage { + echo " + Benutzung: $0 [Parameter] + + -H Hostname / IP-Adresse der NodeRED-Instanz + + -P Port der NodeRED-Instanz + + -S Angabe des zu testenden Miniservers + + -w Angabe, unter welchem Wert der Status 'Warning' ausgegeben werden soll + + -c Angabe, unter welchem Wert der Status 'Critical' ausgegeben werden soll + Erläuterungen analog zu 'Warning' + " +} + + + +#Paramter verarbeiten +while [ "$1" != "" ]; do + case "$1" in + -H) shift; NodeRedHost="$1";; + -P) shift; NodeRedPort="$1";; + -S) shift; MiniServer="$1";; + -w) shift; WarnZeit="$1";; + -c) shift; CritZeit="$1";; + *) showUsage; exit 3;; + esac + shift +done + +if [ -z $NodeRedHost ] || [ -z $MiniServer ] || [ -z $WarnZeit ] || [ -z $CritZeit ]; then + showUsage + exit 1 +fi + +if [ -z $NodeRedPort ] ; then + NodeRedPort="1880" +fi + + +ping -c 1 $NodeRedHost > /dev/null 2>&1 +if [ $? -ne 0 ] ; then + echo "NodeRed-Host nicht erreichbar." + exit 2 +fi + +AntwortZeit=$(curl -s http://${NodeRedHost}:${NodeRedPort}/nred2lox_${MiniServer}) + +if [ $? -ne 0 ] ; then + echo "Verbindungsstatus konnte nicht von NodeRED abgerufen werden." + exit 2 +fi + +if [ -z $AntwortZeit ] ; then + echo "Es wurde keine Antwortzeit ausgegeben." + exit 3 +fi + +if [ $AntwortZeit -ge $CritZeit ] ; then + echo "Critical: Antwortzeit beträgt $AntwortZeit ms." + exit 2 +elif [ $AntwortZeit -ge $WarnZeit ] ; then + echo "Warning: Antwortzeit beträgt $AntwortZeit ms." + exit 1 +else + echo "OK: Antwortzeit beträgt $AntwortZeit ms." + exit 0 +fi + +exit 3 \ No newline at end of file