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 znova zagnati named po tem, ko ste zamenjali datoteko.

Al Longyear mi je poslal skript za vzdrževanje root.hints, ki ga lahko poganjate samodejno - 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 je v vašem računalniku 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 samodejno zaganja vnos v crontabu.
#
# Izvirnik je napisal Al Longyear
# Za BIND 8 priredil Nicolai Langfeldt
# David A. Ranch je poročal o različnih možnih napakah
# Preizkus s pingom je predlagal Martin Foster
# Ali named deluje? - preizkus 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 mož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 "Posodabljanje root.hints ni uspelo"
        echo "dig je sporočil naslednje:"
        echo
        cat root.hints.new errors
        exit 1
        ;;
 esac

 echo "Subject: Datoteka root.hints je posodobljena"
 echo
 echo "V datoteki root.hints so zdaj naslednji podatki:"
 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 vnovič zagnan in zdaj 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 prek protokola ftp na Internic. Prosim vas, da za posodabljanje root.hints uporabljate raje dig, ker je ta možnost prijaznejša tako do interneta kakor do Internica.


Naprej Nazaj Kazalo