[Eisfair] E wie einfacher - Vorschlag zu internen Gateway/DNS/link Kontrolle.

Marcus Roeckrath marcus.roeckrath at gmx.de
Mo Apr 17 18:38:37 CEST 2017


Hallo Kay,

kay wrote:

>> Ich überwache in meinem Schulnetz die externe Verfügbarkeit des
>> Internets, da sich unsere ältere Fritzbox schonmal gerne weghängt, obwohl
>> das nun nicht mehr der Fall ist, seit sie einmal pro Nacht rebootet wird.

Hier mein Skript, das nur einmal pro Statuswechsel (Verbindung ok,
Verbindung verloren) eine Mail sendet.

#!/bin/sh

# include eislib etc.
. /var/install/include/eislib

localnet=/tmp/localnet.alive
internet=/tmp/internet.alive

generate_eximconf=/var/spool/exim/configure

HOSTNAME=`hostname`
SENDMAIL='/usr/sbin/sendmail'
SMTP_QUALIFY_DOMAIN=`sed -n 's/^qualify_domain *= *//p' \
${generate_eximconf}`

send_alert_email ()
{
  . /var/install/include/eistime
    {
        echo "From: NetworkCheck <root@${SMTP_QUALIFY_DOMAIN}>"
        echo "To: Administrator <root@${SMTP_QUALIFY_DOMAIN}>"
        echo "Subject: ${1} on '${HOSTNAME}'"
        echo "Content-Type: text/plain; charset=us-ascii"
        echo "Content-Transfer-Encoding: 8bit"
        echo
        echo "Dispatched from network checker on server '${HOSTNAME}'"
        echo "Current Date: ${EISDATE} Time: ${EISTIME}"
        echo
        echo "${1}"
    } | ${SENDMAIL} postmaster@${SMTP_QUALIFY_DOMAIN}
}

if [ -f ${localnet} ] ; then
  if `ping -c 3 -W 5 <gateway ip> | grep -q "100% packet loss"` ; then
    send_alert_email "Local network connection down"
    rm -f ${localnet}
  fi
else
  if ! `ping -c 3 -W 5 <gateway ip> | grep -q "100% packet loss"`; then
    send_alert_email "Local network connection alive"
    touch ${localnet}
  fi
fi

if [ -f ${internet} ] ; then
  if ! nslookup www.heise.de > /dev/null 2>&1 ; then
    send_alert_email "Internet connection down"
    rm -f ${internet}
  fi
else
  if nslookup www.heise.de > /dev/null 2>&1 ; then
    send_alert_email "Internet connection alive"
    touch ${internet}
  fi
fi

exit 0

Vielleicht ist es eine Anregung für dich.

Der nslookup auf eine externe Adresse; ich mache keinen Check, ob der
interne DNS und ein ping auf eine externe Adresse funktioniert.

Wenn Du das aufteilen willst, läßt sich das wie mit dem Ping auf das Gateway
realisieren.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair