Achtung! Die Howtos stammen aus der Zeit vor 2006 und sind nur noch aus historischen Gründen online!
Um seine Systemzeit unter BSD genau zu halten, gibt es einige Möglichkeiten. Unter FreeBSD und NetBSD ist die einfachste sicher die mit Hilfe des Standardkommandos ntpdate und dem rdate Kommando aus der Port-Collection.
Ntpdate verwendet man zur Zeitsyncronisation mit einem öffentlichen NTP-Timeserver (Stratum 1, Stratum 2) und rdate eignet sich vor allem beim Einsatz im lokalen Netzwerk.
Eigentlich braucht man nicht mehr als ntpdate und die Hostadresse eines NTP-Timeservers. Die Adresse eines solchen Servers ist z.B. "ntps1-0.uni-erlangen.de".
Eine Liste frei zugänglicher Zeitserver findet man unter http://www.eecis.udel.edu/~mills/ntp/servers.html.
Um nun die Zeit des eigenen Rechners mit dem NTP-Timeserver zu synchronisieren, gibt man in der Kommandozeile folgendes ein:
# /usr/sbin/ntpdate ntps1-0.uni-erlangen.deman erhält dann, wenn alles gut geht, folgende Ausgabe:
8 Dec 18:54:55 ntpdate: adjust time server 131.188.34.45 offset 0.038449Sollte es Verbindungsprobleme mit einem NTP-Timeserver geben, kann es sinnvoll sein gleich mehrere Zeit-Server anzugeben:
# /usr/sbin/ntpdate ntps1-0.uni-erlangen.de ntps1-1.uni-erlangen.de ntp0.nl.netIst der erste Timeserver nicht verfügbar, dann wird automatisch der nächste versucht.
Vor dem Einsatz von rdate muss man das entsprechende Package mit pkg_add installieren.
Rdate eignet sich hervoragend im Einsatz in einem lokalen Netzwerk, wo der Betrieb eines NTP-Timeservers zu aufwändig wäre. Am besten synchronisiert man mit rdate gegen einen Server, der sich selbst wiederum mit ntpdate gegen einen Stratum-Timeserver synchronisiert.
Um einen Server für rdate einzurichten, muss man in der Datei /etc/inetd.conf einer Maschine, die Zeile für das Service time (RFC868) aktivieren. Dazu muß man einfach nur das Rautezeichen (#) am Beginn der entsprechenden Zeilen entfernen.
time stream tcp nowait root internal time dgram udp wait root internalJetzt muß noch der inetd neu gestartet werden:
# killall -1 inetdUnd kann das Ergebnis auf dieser Maschine mit
# rdate -p localhostgleich überprüfen (Schalter -p lässt nur die Zeit anzeigen).
Um die Zeit am Client mit dem Timeserver im lokalen Netzwerk zu syncronisieren, braucht man nur mehr rdate aufrufen.
# rdate zeitserv
Ist man mit seinem Rechner permanent mit dem Internet verbunden, so ist es am besten ntpdate über cron [crontab(1,5)] oder periodic [periodic(8)] aufrufen zu lassen.
Unter FreeBSD, geht das einfach mit folgender Ergänzung in der Datei /etc/rc.conf:
ntpdate_enable="YES" ntpdate_flags="ntp0.nl.net" # NTP-Server
Diese Variante empfiehlt sich, wenn der Rechner direkt mit dem Internet verbunden ist, z.B. Telekabel, Standleitung, jedoch nicht für ADSL und Dialup, wenn die Verbindung zum Internet erst nach dem Bootvorgang hergestellt wird.
Mit dem Kommando crontab kann man als Benutzer root seine eigene Crontab bearbeiten:
# crontab -eNun gibt man folgende Zeile ein, um ntpdate einmal täglich, um 23 Uhr, ausführen zu lassen:
0 23 * * * /usr/sbin/ntpdate ntps1-0.uni-erlangen.de ntp0.nl.net >/dev/null 2>&1oder stündlich:
0 * * * * /usr/sbin/ntpdate ntps1-0.uni-erlangen.de ntps1-1.uni-erlangen.de ntp0.nl.net >/dev/null 2>&1Der Vorteil eines stündlichen oder noch kürzereren Intervalls liegt darin, das bei einem Zeitunterschied von weniger als 0.5s, die Systemuhr nur beschleunigt bzw. verlangsamt wird, um die Systemzeit zu korrigieren. Daher es kommt zu keinen Zeitsprüngen, die sich nachteilig auf diverse zeitgesteuerte Prozesse auswirken.
Im Verzeichnis /etc/periodic/daily findet man eine Datei mit dem Namen 999.local. In diese trägt man einfach das gewünschte Kommando ein, welches täglich ausgeführt werden soll:
#!/bin/sh # # $FreeBSD: src/etc/periodic/daily/999.local,v 1.1.1.1.2.1 1999/08/29 14:19:44 p eter Exp $ # # Run the old /etc/daily.local script. This is really for backwards # compatibility more than anything else. # if [ -f /etc/daily.local ]; then echo "" echo "Running daily.local:" sh /etc/daily.local fi # Systemzeit syncronisieren /usr/sbin/ntpdate ntps1-0.uni-erlangen.de ntps1-1.uni-erlangen.de ntp0.nl.net
Ist man mit seinem Rechner nur mit Hilfe von Dial-Up-PPP [ppp(8), pppd(8)] mit dem Internet verbunden so kann man ntpdate automatisch nach dem Verbindungsaufbau aufrufen lassen.
Man erweitert die Datei /etc/ppp/ppp.linkup um folgenden Eintrag:
MYADDR: delete ALL add 0 0 HISADDR !bg /usr/sbin/ntpdate ntps1-0.uni-erlangen.de ntps1-1.uni-erlangen.de ntp0.nl.net
Man erweitert die Datei /etc/ppp/ip-up um folgenden Eintrag:
#!/bin/sh /usr/sbin/ntpdate ntps1-0.uni-erlangen.de ntps1-1.uni-erlangen.de ntp0.nl.net
# crontab -eNun gibt man folgende Zeile ein, um mit rdate die Zeit alle 15 Minuten zu aktualisieren:
*/15 * * * * /usr/local/sbin/rdate zeitserv >/dev/null 2>&1
Copyright ©2000-2001 Michael Ranner mranner@bugat.at
BSD Usergroup Austria