DNS check script

conym18

Member
Hallo,

nachdem evanzo alle domain DNS einträge auf ursprung gesetzt hat und ich dadurch großen ausfall auf meinem server habe, benötige ich nun ein dns check.

leider weiß ich nicht, wie ich das anstellen soll.


normal soll meine domain auf 1.2.3.4 gehen, akt. geht es auf 2.3.4.5

wie kann ich nun mit linux ein script basteln was prüft, ob der ping auf 1.2.3.4 geht?

vielen dank
 
Hi,

vielleicht ist das folgende ein kleiner Denkanstoss:

Code:
host deine.domain | awk '{print $4}'

Gruß
Marcel
 
Wenn Du unbedingt mit "ping" arbeiten willst dafür:

Code:
ping -c1 domain.de | head -1 | awk '{print $3}' | cut -d'(' -f2 | cut -d')' -f1

Prinzipiell würde ich aber auch die Variante von mkeil vorziehen ;)
 
hier mein fertiges script per cron aller 30 min:

Code:
#!/bin/sh

anzahl_pings="2"
richtige_ip="xxx.xxx.xxx.xxx"

function check_dns ()
{
    pruefe_dns=`ping -c$anzahl_pings $1 | head -1 | awk '{print $3}' | cut -d'(' -f2 | cut -d')' -f1`
    if [ "$pruefe_dns" != "$richtige_ip" ]
        then
            echo "DNS PROBLEM FUER $1" | mail -s "DNS PROBLEM FUER $1" email@tld.de
    fi
}

check_dns domain.de
check_dns www.domain.de

check_dns domain1.de
check_dns www.domain1.de
 
Falls Du sowieso eine Nagios-Instanz laufen hast, kannst Du die auch für die Überwachung hernehmen:
Code:
check_dns -A -H www.meinedomain.de -s ns1.dns-evanzo.de -a xxx.xxx.xxx.xxx
 
Stimmt, das mit dem Script von Nagios ist auch eine gute Idee!

Frage an den Autor: wieso willst Du unbedingt ping nutzen?!
 
hab kein nagios auf meinem vserver :)

nachdem ich festgestellt hatte das evanzo die DNS einträge wie auch immer auf std. gesetzt hat und ich es wieder bei meinen domains geändert hatte, brauchte ich ein schnelles, simples und resourcen schonendes script.

und deswegen einfach per ping :)
 
dig wäre da die bessere Lösung, da du da auch wirklich direkt den Nameserver fragen kannst der authorativ für deine Domains ist. Und nicht auf Caches oder sonst was warten musst bis du die Änderung merkst.
 
hier mal mein überarbeitetes script :)

Code:
#!/bin/sh

richtige_ip="1.2.3.4"
email_to="email@tld.de"

function check_dns ()
{
    pruefe_dns=`dig $1 +short`
    if [ "$pruefe_dns" != "$richtige_ip" ]
        then
            big_out=`dig $1`
            echo -e "DNS PROBLEM $2 FUER $1\n\n###\n\n$big_out" | mail -s "DNS PROBLEM $2 FUER $1" $email_to
    fi
}

check_dns meinedomain.de WOISTDOMAINREGISTRIERT
check_dns www.meinedomain.de WOISTDOMAINREGISTRIERT
 
Back
Top