From 46ef150932a4899f53c1b0a228e72a19929a7e71 Mon Sep 17 00:00:00 2001 From: "Moritz Rudert (helios)" Date: Tue, 7 Aug 2012 20:38:35 +0200 Subject: [PATCH] added build_master_ssh_tunnel --- build_master_ssh_tunnel | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 build_master_ssh_tunnel diff --git a/build_master_ssh_tunnel b/build_master_ssh_tunnel new file mode 100755 index 0000000..2db8416 --- /dev/null +++ b/build_master_ssh_tunnel @@ -0,0 +1,39 @@ +#!/bin/sh + +STATE_OK=0 +STATE_WARNING=1 +STATE_CRITICAL=2 +STATE_UNKNOWN=3 +STATE_DEPENDENT=4 + +HOSTNAME="$1" +PORT="$2" +CONFIG="/etc/icinga/ssh_config" +SOCKET="/var/run/icinga/ssh@${HOSTNAME}:${PORT}.sock" +KEY="/etc/icinga/nagios_sshkey" + +if [ $# -lt 2 ]; then + echo "usage: $(basename "$0") " + exit +fi + +if [ -S "${SOCKET}" ]; then + echo "OK - Tunnel exists" + exit $STATE_OK +elif [ ! -f "${KEY}" ]; then + echo "CRITICAL - keyfile missing: ${KEY}" + exit $STATE_CRITICAL +elif [ ! -d "$(dirname "${SOCKET}")" ]; then + echo "CRITICAL - socket directory missing: $(dirname "${SOCKET}")" + exit $STATE_CRITICAL +else + # start ssh with all file descriptors closed/nulled so that the check doesn't hang + /usr/bin/ssh -nNMf -p "${PORT}" -i "${KEY}" -F "${CONFIG}" "${HOSTNAME}" >/dev/null 2>&1 3>&- 4>&- 5>&- 6>&- + if [ $? -ne 0 ] ; then + echo "CRITICAL - Tunnel creation failed" + exit $STATE_CRITICAL + else + echo "OK - Tunnel established" + exit $STATE_OK + fi +fi