Größe: 4049
Kommentar:
|
Größe: 4440
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 35: | Zeile 35: |
Unter SuSE 9.0 wird die Zeit über `/etc/ppp/poll.tcpip' beim Einwählen gesetzt, sofern `ntpdate' installiert ist. Der xntpd Daemon darf nicht laufen. Dann wird ein `/usr/sbin/rcxntpd ntptimeset' ausgeführt. | Unter SuSE 9.0 wird die Zeit über '/etc/ppp/poll.tcpip' beim Einwählen gesetzt, sofern `ntpdate' installiert ist. Der xntpd Daemon darf nicht laufen. Dann wird ein '/usr/sbin/rcxntpd ntptimeset' ausgeführt. Es müsste lediglich noch die Zeile '/sbin/hwclock -uw' eingefügt werden. Sollte dann so aussehen: {{{ while true ; do set -- $(/sbin/runlevel) test -e /etc/init.d/rc${2}.d/S*xntpd && break test -x /usr/sbin/ntpdate || break checkproc /usr/sbin/xntpd &> /dev/null && break /usr/sbin/rcxntpd ntptimeset /sbin/hwclock -uw break done }}} |
NTP ist das Network Time Protocol. Dieses Protokoll erlaubt den Abgleich der Systemzeit mit einem zentralen ZeitServer (im Internet oder eigener Server im LAN).
Das Protokoll ist in RFC 1305 definiert (siehe auch http://www.ntp.org).
In unseren Breitengraden verwendet man am besten einen der folgenden Server:
ptbtime1.ptb.de (Atomuhr der [^http://www.ptb.de Physikalisch-Technischen Bundesanstalt])
- ptbtime2.ptb.de
- bernina.ethz.ch
Weitere öffentliche NTP-Server siehe: http://www.eecis.udel.edu/~mills/ntp/servers.html
Der Zeitabgleich funktioniert am einfachsten mit dem Kommando ntpdate Servername. Anschließend sollte die somit neu gestellte Betriebssystemzeit noch mit hwclock -uw auf die BIOS-Uhr übertragen werden.
Automatisierung durch Cron-Job
So richtig rund wird die Sache, wenn man z.B. über ["cron"] folgendes Script ausführt:
ntpdate -t 60 lieblingstimeserver; hwclock -u --systohc
hwclock stellt die Hardware-Uhr (RTC); -u heißt, dass diese auf UTC läuft. Sollte ntpdate nicht schnell genug eine Antwort bekommen (z.B. bei Wählleitungen), kann man das Timeout (-t) auch höher setzen.
Automatisierung bei Wählverbindung
Wer sich über eine Wählleitung mit dem Internet verbindet, kann die nötigen Befehle in der Datei /etc/ppp/ip-up.local unterbringen:
ntpdate ptbtime1.ptb.de hwclock -uw
Unter SuSE 9.0 wird die Zeit über '/etc/ppp/poll.tcpip' beim Einwählen gesetzt, sofern `ntpdate' installiert ist. Der xntpd Daemon darf nicht laufen. Dann wird ein '/usr/sbin/rcxntpd ntptimeset' ausgeführt. Es müsste lediglich noch die Zeile '/sbin/hwclock -uw' eingefügt werden. Sollte dann so aussehen:
while true ; do set -- $(/sbin/runlevel) test -e /etc/init.d/rc${2}.d/S*xntpd && break test -x /usr/sbin/ntpdate || break checkproc /usr/sbin/xntpd &> /dev/null && break /usr/sbin/rcxntpd ntptimeset /sbin/hwclock -uw break done
Eigenen Zeitserver aufsetzen
Mit ntpd lässt sich sehr einfach ein eigener ZeitServer aufsetzen. Dazu trägt man im bei der Installation von ntpd mitgelieferten File /etc/ntp.conf bis zu drei übergeordnete NTP-Server ein und startet den ntpd mit /etc/init.d/ntpd start.
Es ist nicht zu empfehlen, ntpd als Server aufzusetzen, wenn man eine Wählleitung hat. Da er selbständig versucht, Verbindungen zu anderen Zeitservern aufzubauen, kann das zu Ärger führen.
Mit ntpq -p kann man sich den Status anzeigen lassen.
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *ntp1.ptb.de .PTB. 1 u 1018 1024 377 27.052 -0.481 0.023 +ntp2.ptb.de .PTB. 1 u 174 1024 377 24.566 -0.619 0.168 -rustime01.rus.u .DCFp. 1 u 80 1024 377 27.175 1.816 0.033
Natürlich kann man, statt sich die Zeit aus dem Internet zu holen, eine Funkuhr einsetzen. Siehe auch EigenbauFunkuhr.
Detaillierte Beschreibung
"root" kann sich mit ntpdate das Zeitsignal z. B. einer Atomuhr aus dem Internet holen und die Systemuhr damit hinreichend genau einstellen: {{{ntpdate ptbtime2.ptb.de ptbtime1.ptb.de }}}
Wenn man die Uhr allerdings auf Dauer synchron halten will, ist diese Methode nicht sehr gut, da bei einem Aufruf von ntpdate die Uhr abrupt neu gestellt wird. Wenn sie so beispielsweise zurück gestellt wird, können in den Logdateien Uhrzeiten doppelt auftauchen.
Deshalb gibt es alternativ den etwas intelligenteren ["ntpd"]. Dieser stellt die Uhr nicht neu, sondern verlangsamt bzw. beschleunigt sie solange, bis die Uhrzeit stimmt.
root# cat << "EOC" > /etc/ntp.conf driftfile /var/run/ntpd.drift server ptbtime1.ptb.de server ptbtime2.ptb.de EOC
Jetzt noch den ntpd starten: {{{ntpd -p /var/run/ntpd.pid }}}
Statt ptbtime[12].ptb.de ist es sinnvoller die NTP-Server seines Providers zu verwenden, soweit vorhanden.
NTP-Synchronisierung für den Router, rdate für die Clients
Da es suboptimal ist, wenn sich alle Clients hinter einem Router von einen Internet-NTP-Server die Zeit holen, ersetzt man auf den Clients die server-Zeile durch server routername.
ToDo: Refactoring