Naprej Nazaj Kazalo

8. Vzdrževanje

Skrbite, da bo vse delovalo.

Poleg tega, da skrbite, da bo vse delovalo, imate še eno nalogo - vzdržujte datoteko root.hints točno. To je najenostavneje z uporabo programa dig. Najprej ga zaženite brez argumentov in dobili boste root.hints glede na vaš strežnik, nato pa zaženite dig še z enim od korenskih strežnikov: dig @korenski-strežnik. Izhod, ki ga dobite, je nova datoteka root.hints. Shranite ga v datoteko (dig @e.root-servers.net . ns >root.hints.nov) in zamenjajte staro datoteko root.hints z njo.

Ne pozabite ponovno zagnati named potem, ko ste zamenjali datoteko.

Al Longyear mi je poslal skript za vzdrževanje root.hints, ki ga lahko poganjate avtomatično - v crontab vpišite vnos, ki ga bo pognal vsak mesec, nato pa lahko nanj pozabite. Skript predpostavlja, da imate delujočo elektronsko pošto in da na vašem računalniku obstaja naslov `hostmaster'. Da bo ustrezala vašim nastavitvam, jo morate prirediti svojim potrebam.


#!/bin/sh
#
# Posodobimo predpomnilniško datoteko imenskega strežnika enkrat na mesec.
# To skripto samodjeno zaganja vnos v crontabu.
#
# Original je napisal Al Longyear
# Za BIND 8 priredil Nicolai Langfeldt
# David A. Ranch je poročal o različnih možnih napakah
# Test s pingom je predlagal Martin Foster
# Ali named deluje? - test predlagal Erik Bryer.
#
#
(
 echo "To: hostmaster <hostmaster>"
 echo "From: system <root>"

 # Is named up? Check the status of named.
 case `ndc status 2>&1` in
    *'cannot connect to command channel'*)
        echo "named is DOWN. root.hints was NOT updated"
        echo
        exit 0
        ;;
 esac

 PATH=/sbin:/usr/sbin:/bin:/usr/bin:
 export PATH
 # NOTE: V /var/named smejo pisati le ta skripta in ustrezni uporabniki
 # ne bo odprl zmožnosti za zlonamerno prekinitev delovanja strežnika
 # ali možnosti za vlom v račun superuporabnika - root.
 cd /var/named 2>/dev/null || {
    echo "Subject: Cannot cd to /var/named, error $?"
    echo
    echo "The subject says it all"
    exit 1
 }

 # Smo povezani v internet? Pingajmo strežnik vašega ponudnika
 case `ping -qnc 1 some.machine.net 2>&1` in
   *'100% packet loss'*)
        echo "Subject: root.hints NI posodobljen.  Mreža NE DELUJE."
        echo
        echo "The subject says it all"
        exit 1
        ;;
 esac

 dig @e.root-servers.net . ns >root.hints.new 2> errors

 case `cat root.hints.new` in
   *NOERROR*)
        # Delovalo je
        :;;
   *)
        echo "Posodobitev datoteke root.hints NI USPELA."
        echo
        echo "Posodavljanje root.hints ni uspelo"
        echo "dig je sporočil sledeče:"
        echo
        cat root.hints.new errors
        exit 1
        ;;
 esac

 echo "Subject: Datoteka root.hints je posodobljena"
 echo
 echo "Datoteka root.hints sedaj vsebuje sledeče podatke:"
 echo
 cat root.hints.new

 chown root.root root.hints.new
 chmod 444 root.hints.new
 rm -f root.hints.old errors
 mv root.hints root.hints.old
 mv root.hints.new root.hints
 ndc restart
 echo
 echo "Imenski strežnik je bil ponovno zagnan in sedaj ve za morebitne spremembe."
 echo "Prejšnja datoteka root.hints se zdaj imenuje /var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail -t
exit 0

Morda ste izvedeli, da je datoteka root.hints na voljo tudi preko ftp protokola na Internic. Prosim vas, da za posodabljanje root.hints uporabljate raje dig, ker je ta možnost bolj prijazna tako do interneta kot do Internica.


Naprej Nazaj Kazalo