summaryrefslogtreecommitdiffstats
path: root/service/check_router.sh
diff options
context:
space:
mode:
Diffstat (limited to 'service/check_router.sh')
-rwxr-xr-xservice/check_router.sh76
1 files changed, 76 insertions, 0 deletions
diff --git a/service/check_router.sh b/service/check_router.sh
new file mode 100755
index 0000000..82391aa
--- /dev/null
+++ b/service/check_router.sh
@@ -0,0 +1,76 @@
+#! /bin/bash
+
+cd "$(dirname "$0")"
+. opts.sh
+
+
+www_checks=(
+ "https://ufo.kit.edu/dis/ tomography"
+ "http://ufo.kit.edu/ands/repos/openshift37/x86_64 origin"
+ "http://www.fossils.kit.edu coptera"
+ "http://www.katrin.kit.edu neutrino"
+ "http://katrin.kit.edu/data/astor/ wave"
+# "http://user:pass@katrin.kit.edu/adei-hiu/ Advanced"
+)
+
+
+online=$(../scripts/ping.pl "$host")
+healthy=$online
+
+# URL checks
+for c in "${www_checks[@]}"; do
+ url=$(echo $c | awk '{ print $1 }')
+ check=$(echo $c | awk '{ $1=""; print $0 }' | sed -e 's/^[[:space:]]\+//')
+
+ ret=$(curl -sSfL "$url" 2>&1)
+ if [ $? -ne 0 ]; then
+ echo "$url - $ret"
+ healthy=0
+ elif [ -n "$check" ]; then
+ echo $ret | grep -iP "$check" &>/dev/null
+ if [ $? -ne 0 ]; then
+ echo "$url - specified keyword is not found"
+ healthy=0
+ fi
+ fi
+done
+
+# Katrin SSH forwaring
+ret=$(echo "" | nc -N katrin.kit.edu 22)
+if [ $? -ne 0 ]; then
+ echo "Error connecting katrin.kit.edu:22"
+ healthy=0
+else
+ echo $ret | grep SSH-2.0-OpenSSH_5.8 > /dev/null
+ if [ $? -ne 0 ]; then
+ echo "Unexpected SSH server listening on katrin.kit.edu:22. Banner: $ret"
+ healthy=0
+ fi
+fi
+
+# VPN check
+ssh darksoft.org ping -W 2 -c 2 192.168.31.1 &> /dev/null
+if [ $? -ne 0 ]; then
+ echo "Can't verify availability of UFO tunnel"
+ [ $healthy -eq 1 ] && healthy=2
+fi
+
+ping -W 2 -c 2 192.168.110.67 &> /dev/null
+if [ $? -ne 0 ]; then
+ echo "Can't verify availability of KATRIN tunnel"
+ [ $healthy -eq 1 ] && healthy=2
+fi
+
+uptime=$(ssh $host uptime | sed -e 's/^[[:space:]]\+//')
+up=$(echo $uptime | cut -d ' ' -f 3- | cut -d ',' -f 1 | sed -re 's/^\s*//')
+load=$(echo $uptime | cut -d ' ' -f 3- | cut -d ',' -f 4- | cut -d ':' -f 2 | cut -d ',' -f 3 | sed -re 's/^\s*//')
+
+ret=$(ssh $host rpm -qi redhat-release | grep Version)
+if [ $? -eq 0 ]; then
+ rel="RHEL $(echo "$ret" | cut -d ':' -f 2 | sed -e 's/^[[:space:]]\+//')"
+else
+ rel="Unknown"
+fi
+
+info=" \${color gray}/ $up, load $load"
+echo "$online $healthy $rel $info"