#!/bin/bash readonly NAGIOS_OK=0 readonly NAGIOS_WARNING=1 readonly NAGIOS_CRITICAL=2 readonly NAGIOS_UNKNOWN=3 function main { local warn_level="$1" local crit_level="$2" curlout=$(curl --connect-timeout 5 --max-time 10 -s http://localhost:2006/neigh) if [ $? -ne 0 ]; then echo "UNKNOWN - failed to fetch olsr neighbours" return "$NAGIOS_UNKNOWN" fi local neighs=$(echo "$curlout" | awk '($0 != "" && NR > 2) { print($1) }') local neighs_len=$(echo -n "$neighs" | wc -l) local code="$NAGIOS_OK" local state="OK" local tag="" if [ $neighs_len -le $crit_level ]; then code="$NAGIOS_CRITICAL" state="CRIT" tag="(!!)" elif [ $neighs_len -le $warn_level ]; then code="$NAGIOS_WARNING" state="WARN" tag="(!)" fi echo "$state - $neighs_len$tag olsr neighbours found." exit "$code" } if [ -z "$1" ] || [ -z "$2" ]; then echo "UNKNOWN - please specify warn and critical values for neighbour counts" exit "$NAGIOS_UNKNOWN" fi main "$1" "$2"