From a55e1cef8428d736fec6e3e60fd5014c3de047ba Mon Sep 17 00:00:00 2001 From: Pall Sigurdsson Date: Wed, 15 Jun 2011 20:18:50 +0000 Subject: [PATCH] Errors now sent to stderr instead of stdout --- misc/nagios_autodiscover | 43 ++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/misc/nagios_autodiscover b/misc/nagios_autodiscover index c7c9157..35220f3 100755 --- a/misc/nagios_autodiscover +++ b/misc/nagios_autodiscover @@ -1,18 +1,47 @@ -#!/bin/sh +#!/bin/bash -IPS=`fping -a -g $1 2>/dev/nul` +IPS=`fping -a -g $1 2>/dev/null` if [ $? -gt 2 ]; then echo failed to run fping exit 1 fi - #addgroup --group misc --alias "Misc hosts" +check_port() { + hostname=$1 + port=$2 + check_tcp -H $hostname -p $port > /dev/null 2>&1 + if [ $? -eq 0 ]; then + return 0 + fi + return 1 +} + +is_windows() { + hostname=$1 + check_port $hostname 3389 > /dev/null 2>&1 + return $? +} + +is_linux() { + hostname=$1 + check_port $hostname 22 + return $? +} + + for ip in $IPS; do + + # Check if ip is just fping garbage output + echo $ip | grep -Eq '\[|\]' + if [ $? -eq 0 ]; then + continue + fi # Check if this host already exists - grep -qw $ip /var/log/nagios/objects.cache + + grep -qw "$ip" /var/log/nagios/objects.cache > /dev/null 2>&1 if [ $? -eq 0 ]; then continue fi @@ -22,7 +51,9 @@ for ip in $IPS; do else HOSTN=`echo $RES | head -n 1 | sed 's/.*name pointer //' | sed 's/\.$//'` fi - echo $ip = $HOSTN - addhost --host $HOSTN --ip $ip --group misc --templates autodiscover + echo $ip = $HOSTN `is_windows $HOSTN` `is_linux $HOSTN` + #addhost --host $HOSTN --ip $ip --group misc --templates autodiscover done + +