Browse Source

'nred2lox.sh' hinzufügen

Daniel Wenzel 3 years ago
parent
commit
8f11cd6024
1 changed files with 75 additions and 0 deletions
  1. 75 0
      nred2lox.sh

+ 75 - 0
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