LPIC102/108.1 Systemzeit: Unterschied zwischen den Versionen

Aus Foxwiki
Fabienmann (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
K Textersetzung - „  “ durch „ “
 
(81 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Wichtigste Wissensgebiete==
Die Dienste eines Systems müssen kontrolliert und gepflegt werden.
Um sich die Arbeit so weit wie möglich zu erleichtern, können Sie hier
einiges automatisieren. Und zur Vereinfachung der Kontrolle können
Sie die Protokollierung auf Ihre Bedürfnisse zuschneiden.
 
<big>Wichtigste Wissensgebiete:</big>
# Systemzeit und -datum setzen
# Systemzeit und -datum setzen
# die Hardwareuhr auf die korrekte Zeit in UTC setzen
# die Hardwareuhr auf die korrekte Zeit in UTC setzen
# die korrekte Zeitzone einstellen
# die korrekte Zeitzone einstellen
# grundlegende NTP-Konfiguration unter Verwendung von ntpd und chrony
# grundlegende ''NTP-Konfiguration'' unter Verwendung von ''ntpd'' und ''chrony''
# Wissen über den Gebrauch von pool.ntp.org
# Wissen über den Gebrauch von ''pool.ntp.org''
# Nummerierter Listeneintrag
# Kenntnis des ''ntpq-Kommandos''<br>
# Kenntnis des ntpq-Kommandos


<big>Liste wichtiger Dateien, Verzeichnisse und Anwendungen:</big>
Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
* /usr/share/zoneinfo
* /usr/share/zoneinfo
* /etc/timezone
* /etc/timezone
Zeile 26: Zeile 19:
* ntpdate
* ntpdate
* chronyc
* chronyc
* pool.ntp.org
* pool.ntp.org<br>


<big>Manuelle Konfiguration der Systemzeit</big>
==Manuelle Konfiguration der Systemzeit==


Die manuelle Konfiguration der Systemzeit erfolgt über das Kommando date. Wenn
Die manuelle Konfiguration der Systemzeit erfolgt über das Kommando ''date''. Wenn
Sie date ohne Parameter starten, werden das aktuelle Datum und die Uhrzeit ausgegeben.
Sie ''date'' ohne Parameter starten, werden das aktuelle Datum und die Uhrzeit ausgegeben.


  ''archangel:~ # date''
  ''# date''
  ''Di 24. Apr 17:54:52 CEST 2018''
  ''Di 24. Apr 17:54:52 CEST 2018''


Hierbei ist zu beachten, dass es sich tatsächlich um die Systemzeit handelt.
''die Uhrzeit'' mittels ''date'' ändern:
Wenn Sie die Uhrzeit mittels date ändern wollen, dann gehen Sie folgendermaßen
vor:


  ''archangel:~ # date -s 1755''
  ''# date -s 1755''
  ''Di 24. Apr 17:55:00 CEST 2018''
  ''Di 24. Apr 17:55:00 CEST 2018''


Die Uhr wird auf 17.55 Uhr eingestellt. Es ist aber auch möglich, date zu verwenden, um recht elegante Uhrzeitausgaben zu generieren. Das kann etwa in eigenen Skripten verwendet werden. Wenn date auf ein + trifft, wird die darauf folgende Zeichenkette von date ausgegeben und die enthaltenen Variablen entsprechend ergänzt.
Die Uhr wurde nun erfolgreich auf 17.55 Uhr eingestellt.  
 
Für bessere Darstellungen kann man ''date +'' verwenden


Das sieht z. B. so aus:
Das sieht z.&nbsp;B.&nbsp;so aus:<br>
# date "+Heute ist der %d.%m.%Y. Das ist der %j. Tag des Jahres."
'' # date "+Heute ist der %d.%m.%Y. Das ist der %j. Tag des Jahres."''<br>
Heute ist der 24.04.2018. Das ist der 118. Tag des Jahres.''
'' Heute ist der 24.04.2018. Das ist der 118. Tag des Jahres.''


Das Programm unterstützt zahlreiche weitere Variablen. Diese können Sie mit date
Mit dem Befehl ''date --help'' werden dir weitere Variablen anzeigt.<br>
--help anzeigen lassen.


<big>Die RTC-Uhr einstellen</big>
==Die RTC-Uhr einstellen==


Mit dem Kommando ''hwclock'' können Sie die Systemzeit in die Hardwareuhr schreiben oder umgekehrt. Sie müssen beide Verfahren für die Prüfung kennen. Das sollte aber nicht weiter problematisch sein, weil Sie die benötigten Optionen leicht wiedererkennen können. Folgendes Kommando schreibt die Systemzeit in die Echtzeituhr:
Eine Echtzeituhr (englisch real-time clock, RTC) oder physikalische Uhr ist eine Uhr, welche die physikalische Zeit misst. Mit dem Kommando ''hwclock'' können Sie die Systemzeit in die Hardwareuhr schreiben oder umgekehrt. Folgendes Kommando schreibt die Systemzeit in die Echtzeituhr:


  ''archangel:~ # hwclock --systohc''
  ''# hwclock --systohc''


Umgekehrt holt folgender Befehl die Zeit bei der RTC ab und stellt danach die Systemzeit ein:
Umgekehrt holt folgender Befehl die Zeit bei der RTC ab und stellt danach die Systemzeit ein:


  ''archangel:~ # hwclock --hctosys''
  ''# hwclock --hctosys''


Interessant ist es auch zu beobachten, wie die Uhrzeiten zwischen der Hardwareuhr
Die Differenz ziwschen Hardwareuhr und der Systemzeit lässt sich mit ''hwclock'' ermitteln, indem Sie folgendes Kommando verwenden:  
und der Systemzeit driften. Die Differenz lässt sich mit hwclock ermitteln, indem Sie folgendes Kommando verwenden:


  ''archangel:~ # hwclock --show''
  ''# hwclock --show''
  ''Di 24 Apr 2018 17:58:13 CEST -0.020712 Sekunden''
  ''Di 24 Apr 2018 17:58:13 CEST -0.020712 Sekunden''


Die Genauigkeit, mit der die Abweichung ermittelt wird, ist eine millionstel Sekunde. Das sollte für die meisten Anwendungsgebiete ausreichen.
==Zeitzonen==
 
<big>Zeitzonen</big>


Es gibt grundsätzlich zwei Arten, wie eine Linux-Uhr eingestellt werden kann. Entweder Sie stellen sie der Einfachheit halber auf die Zeit der Zone ein, in der Sie sich befinden, oder Sie verwenden UTC. Heutzutage geben die meisten Administratoren der zweiten Methode den Vorzug, was im Zuge internationaler Kommunikation auch nur vernünftig ist. Das Kürzel UTC leitet sich ursprünglich von Coordinated Universal Time ab. Im Lauf der Jahre ist der Buchstabe C aus irgendwelchen Gründen, die heute niemand mehr kennt, an den Schluss gestellt worden. Die UTC löst die MEZ inzwischen auch in Europa weitestgehend ab. UTC+1 entspricht der MEZ.
Damit die Lokaluhrzeit den Benutzer angezeigt wird, muss die BIOS-Uhr (RTC) auf UTC eingestellt werden.
Wichtige Konfigurationsdateien:
* ''/usr/share/zoneinfo'' – in diesem ''Verzeichnis'' befinden sich Binärdateien, die mit allen existierenden Zeitzonen korrespondieren.
* ''/etc/localtime'' – diese Datei ist die mit der aktuellen Zeitzone übereinstimmende
* Binärdatei aus ''/usr/share/zoneinfo''. Es kann sich hier um eine Kopie oder einen ''Softlink'' zur Originaldatei handeln.
* ''/etc/timezone'' ist eine textbasierte Konfigurationsdatei. Sie können die richtige Zeitzone in dieser Datei einfach eintragen.


Damit der Computer dem Benutzer die lokale Zeit anzeigt, muss dem System noch
Um einen Überblick über die verfügbaren Zeitzonen zu bekommen, können Sie ''tzselect'' verwenden.<br>
mitgeteilt werden, dass die BIOS-Uhr (RTC) auf UTC eingestellt ist. Das kann über folgende Konfigurationsdateien geschehen:


/usr/share/zoneinfo – in diesem Verzeichnis befinden sich Binärdateien, die mit
==timedatectl==
* allen existierenden Zeitzonen korrespondieren.
/etc/localtime – diese Datei ist die mit der aktuellen Zeitzone übereinstimmende
* Binärdatei aus /usr/share/zoneinfo. Es kann sich hier um eine Kopie oder einen
Softlink zur Originaldatei handeln.
* /etc/timezone ist eine textbasierte Konfigurationsdatei. Sie können die richtige Zeitzone in dieser Datei einfach eintragen.


Um einen Überblick über die verfügbaren Zeitzonen zu bekommen, können Sie ''tzselect'' verwenden, wie Sie ja bereits aus dem vorangegangenen Kapitel wissen. Dieses nützliche Werkzeug ist in den meisten aktuellen Distributionen enthalten.
Der Befehl 'timedatectl'' kombiniert und erweitert die Funktionalität der Befehle ''date'' und ''hwclock''.


<big>timedatectl</big>
Die Verwendung von ''timedatectl'' ohne Optionen gibt Ihnen eine Menge hilfreicher Informationen:
 
''systemd'' hat zur Verwaltung der Systemzeit ein eigenes Werkzeug parat. Sie haben es in einem anderen Zusammenhang sogar schon verwendet. Das Kommando ''timedatectl'' vereint und erweitert die Funktionalitäten der Befehle ''date'' und ''hwclock''.
 
Alleine die Verwendung von ''timedatectl'' ohne Optionen gibt Ihnen eine Menge hilfreicher Informationen:


  ''[root@scientific ~]# timedatectl''
  ''[root@scientific ~]# timedatectl''
        ''Local time: Sa 2018-04-21 13:49:47 CEST''
''Local time:       Sa 2018-04-21 13:49:47 CEST
    ''Universal time: Sa 2018-04-21 11:49:47 UTC''
''Universal time:   Sa 2018-04-21 11:49:47 UTC
          ''RTC time: Sa 2018-04-21 11:49:47''
''RTC time:         Sa 2018-04-21 11:49:47
        ''Time zone: Europe/Berlin (CEST, +0200)''
''Time zone:       Europe/Berlin (CEST, +0200)
      ''NTP enabled: no''
''NTP enabled:     no
  ''NTP synchronized: no''
''NTP synchronized: no
  ''RTC in local TZ: no''
''RTC in local TZ: no
        ''DST active: yes''
''DST active:       yes
  ''Last DST change: DST began at''
''Last DST change: DST began at
                    ''So 2018-03-25 01:59:59 CET''
''                 So 2018-03-25 01:59:59 CET
                    ''So 2018-03-25 03:00:00 CEST''
''                 So 2018-03-25 03:00:00 CEST
  ''Next DST change: DST ends (the clock jumps one hour backwards) at''
''Next DST change: DST ends (the clock jumps one hour backwards) at
                    ''So 2018-10-28 02:59:59 CEST''
''                 So 2018-10-28 02:59:59 CEST
                    ''So 2018-10-28 02:00:00 CET''
''                 So 2018-10-28 02:00:00 CET


''timedatectl'' unterstützt auch die Ansteuerung von Remotemaschinen und lokalen
''timedatectl'' unterstützt auch die Ansteuerung von Remotemaschinen und lokalen
Zeile 112: Zeile 96:
Kommando:
Kommando:


  ''[root@scientific ~]# timedatectl set-time "2018-03-24 14:24:16" -H archangel''
  ''[root@scientific ~]# timedatectl set-time "2018-03-24 14:24:16" -H archangel''<br>


==Zeitsynchronisation über das Netzwerk==


<big>Zeitsynchronisation über das Netzwerk</big>
Für die Zeitsynchronisation über das Netzwerk kommt das ''Network Time Protocol'' (NTP) zum Einsatz


Zeitsynchronisation über das Netzwerk heißt in den meisten Fällen natürlich Synchronisation über das Internet. Zu diesem Zweck kommt das ''Network Time Protocol'' (NTP) zum Einsatz. Es handelt sich hier um ein relativ altes Protokoll, das schon ''1985'' in ''RFC 958'' definiert wurde. Wegen der geringen zu übertragenden Datenmengen ''376'' nutzt ''NTP'' das ''UDP''. Der verwendete ''UDP-Port'' ist ''123''. Viele interessante Informationen und aktuelle ''NTP-Programmpakete'' erhalten Sie auf ''http://www.ntp.org.'' Hier finden Sie auch Listen mit öffentlichen Servern, von denen Sie synchronisieren können. Interessant ist in diesem Zusammenhang auch ein Projekt, in dem ganze ''NTP-Pools'' mittels ''Round Robin'' zur Verfügung gestellt werden. Es folgt ein Beispiel mit einem Zugriff auf eben diese Server:
Es folgt ein Beispiel mit einem Zugriff auf einen Server:


  ''root@archangel:~# ntpdate pool.ntp.org''
  ''root@archangel:~# ntpdate pool.ntp.org''
  ''24 Apr 18:03:14 ntpdate[30836]: adjust time server''
  ''24 Apr 18:03:14 ntpdate[30836]: adjust time server 131.234.137.24''
''131.234.137.24''
  ''offset -0.000341 sec''
  ''offset -0.000341 sec''


Wie Sie sehen, können Sie mit ''ntpdate'' einfach durch Angabe eines Zeitservers die Uhrzeit des Systems aktualisieren. Es wird allerdings empfohlen, bei der Synchronisation mehrere Server gleichzeitig zurate zu ziehen, damit die Richtigkeit der übermittelten Uhrzeit gegengeprüft werden kann.
Mit ''ntpdate'' können Zeitserver die
Uhrzeit des Systems aktualisieren. Es wird jedoch empfohlen, während der Synchronisation mehrere Server gleichzeitig zu konsultieren, damit die Richtigkeit der übertragenen Zeit überprüft werden kann.<br>


<big>Zeitsynchronisation mit ''ntpd''</big>
==Zeitsynchronisation mit ntpd==


Wenn die Systemzeit automatisch synchronisiert werden soll, könnten Sie natürlich einfach ''ntpdate'' regelmäßig von ''cron'' ausführen lassen. Komfortabler und genauer funktioniert dies allerdings mit dem ''Daemon'' ''ntpd''. Die Verwendung von ''ntpd'' hat vor allem den Vorteil, dass der Computer selbst als Zeitserver fungieren kann. Sie können ohne Schwierigkeiten einen Windows-Computer von einem ''Linux-Host'' synchronisieren. Dazu müssen Sie auf dem Windows-Computer lediglich einen Doppelklick mit der keriellen Zeigereinheit (Maus o. Ä.) auf der Uhr ausführen. Auf der Registerkarte Internetzeit können Sie den Zeitserver festlegen. Diese Methode funktioniert nicht, wenn der Windows-Computer Mitglied einer Domäne ist. Die Hauptkonfigurationsdatei für den ''ntpd'' ist ''/etc/ntp.conf.'' Hier findet der ''Daemon'' vor allem die Adressen mit den zur Aktualisierung vorgesehenen Servern und einen Verweis auf den ''Driftfile''. Dieser liegt, zumindest offiziell (und somit für die Prüfung), unter ''/etc/ntp.drift.'' Der tatsächliche Speicherort hängt von der verwendeten Distribution ab. Die Mindestausstattung der ''ntp.conf'' könnte etwa so aussehen:
Wenn Sie ''ntpdate'' regelmäßig von ''cron'' ausführen lassen, wird Systemzeit automatisch synchronisiert. Komfortabler und genauer funktioniert dies allerdings mit dem Daemon ''ntpd''.
<br>


''server de.pool.ntp.org''
Die Hauptkonfigurationsdatei für den ''ntpd'' ist ''/etc/ntp.conf''. Hier findet der Daemon vor allem die Adressen mit den zur Aktualisierung vorgesehenen Servern und einen Verweis auf den Driftfile. Diese liegt, unter ''/etc/ntp.drift''. Der tatsächliche Speicherort hängt von der verwendeten Distribution ab. Die Mindestausstattung der ''ntp.conf'' könnte etwa so aussehen:
''server ptbtime1.ptb.de''
''driftfile /var/lib/ntp/drift/ntp.drift''


Mit diesen Einträgen ist der Server schon lauffähig. Starten Sie den Server wie üblich mit /etc/init.d/ntpd start. Er wird sofort eine erste Synchronisation durchführen. In Abhängigkeit von der verwendeten Distribution wurde ntpd bereits durch xntpd ersetzt. Die Konfigurationsdateien sind jedoch identisch.
''server de.pool.ntp.org''
<br>
''server ptbtime1.ptb.de''
Die Driftdatei wird von ntpd verwendet, um Ungenauigkeiten der Systemuhr festzuhalten. Die Abweichung von der tatsächlichen Zeit wird auf eine millionstel Sekunde ermittelt und in die Driftdatei geschrieben.
''driftfile /var/lib/ntp/drift/ntp.drift''
<br>
 
Sie können den Daemon ntpd mithilfe des Programms ntpq abfragen. Die genaue
Mit diesen Einträgen ist der Server schon lauffähig. So Starten Sie den Server ''/etc/init.d/ntpd start''. Nachdem Start wird der Server sofort eine erste Synchronisation durchführen. In Abhängigkeit von der verwendeten Distribution wurde ''ntpd'' bereits durch ''xntpd'' ersetzt. Die Konfigurationsdateien sind jedoch identisch.
Syntax des Programms ist nicht prüfungsrelevant, aber Sie sollten zumindest wissen, dass es ntpq gibt. Wenn Sie wissen wollen, welche Server Ihr ntpd kontaktiert, können Sie z. B. dieses Kommando verwenden:
 
<br>
Die Driftdatei wird von ''ntpd'' verwendet, um Ungenauigkeiten ''der Systemuhr'' festzuhalten. Die Abweichung von der tatsächlichen Zeit wird auf eine millionstel Sekunde ermittelt und in die Driftdatei geschrieben.
root@archangel:~# ntpq -p
 
<br>
Sie können den Daemon ''ntpd'' mithilfe des Programms ''ntpq'' abfragen. Wenn Sie wissen wollen, welche Server Ihr ''ntpd'' kontaktiert, können Sie z.&nbsp;B.&nbsp;dieses Kommando verwenden:
remote
 
refid
''root@archangel:~# ntpq -p''<br>
st t when poll reach delay offset jitter
''remote         refid   st t when poll reach delay offset jitter''<br>
===================================================================
===================================================================<br>
arcturos.gr
''arcturos.gr     213.239.239.166 3 u 4 64 1 27.057 -1.371 0.000''<br>
213.239.239.166 3 u 4 64 1 27.057 -1.371 0.000
''pyxis.my-rz.de 212.82.32.15   2 u 3 64 1 23.226 1.645 0.000''<br>
pyxis.my-rz.de 212.82.32.15
''bytesink.de     131.188.3.223   2 u 2 64 1 32.562 3.667 0.000''<br>
2 u 3 64 1 23.226 1.645 0.000
''ntp1.wtnet.de   10.129.40.211   2 u 1 64 1 29.028 1.428 0.000''<br>
bytesink.de
''golem.canonical 192.93.2.20     2 u - 64 1 32.256 0.875 0.000''<br>
131.188.3.223
 
2 u 2 64 1 32.562 3.667 0.000
Es gibt mehrere Bordwerkzeuge, um den ''ntpd'' oder auch ''xntpd'' zu untersuchen. Die
ntp1.wtnet.de 10.129.40.211
beiden wichtigsten sind wohl ''ntpq'' und ''ntpdc''. Beide Programme unterstützen einen
2 u 1 64 1 29.028 1.428 0.000
interaktiven Modus, der nach Eingabe eines Fragezeichens Aufschluss über die Möglichkeiten der beiden Programme liefert.  
golem.canonical 192.93.2.20
 
2 u - 64 1 32.256 0.875 0.000
Das Beispiel zeigt eine Abfrage nach ''sysinfo'' mit'' ntpdc'' im interaktiven Modus:
<br>
 
Es gibt mehrere Bordwerkzeuge, um den ntpd oder auch xntpd zu untersuchen. Die
''archangel:/ # ntpdc''
beiden wichtigsten sind wohl ntpq und ntpdc. Beide Programme unterstützen einen
''ntpdc> sysinfo''       
interaktiven Modus, der nach Eingabe eines Fragezeichens Aufschluss über die Möglichkeiten der beiden Programme liefert. Das Beispiel zeigt eine Abfrage nach
''system peer:       ptbtime1.ptb.de''
<br>
''system peer mode:   client''
sysinfo
  ''leap indicator:     00''
mit ntpdc im interaktiven Modus:
  ''stratum:           2''
<br>
  ''precision:         -18''
archangel:/ # ntpdc
''root distance:     0.02992 s''
ntpdc> sysinfo
''root dispersion:   0.02531 s''
system peer:
''reference ID:       [192.53.103.108]''
ptbtime1.ptb.de
''reference time:     de60cef4.ac5938de Sat, Mar 24 2018 14:19:48.673''
system peer mode:
''system flags:       auth monitor ntp kernel stats''
  client
''jitter:             0.004898 s''
leap indicator:
''stability:         236.358 ppm''
  00
''broadcastdelay:     0.003998 s''
stratum:
''authdelay:         0.000000 s''
  2
''ntpdc>''
precision:
 
-18
Die beiden Diagnoseprogramme peers und monlist geben große Informationsmengen aus. Eine weitere Implementierung des NTP ist chrony. Dieser Daemon eignet sich besonders für virtuelle Maschinen oder Systeme, die nicht dauerhaft laufen. Die Einstellung der RTC ist integriert und muss daher nicht vorgenommen werden. Die Zeitsynchronisation ist schneller und genauer als bei ntpd.
root distance:
 
0.02992 s
Nach der Installation von chrony durch das Paketmanagement haben Sie den Daemon chronyd, der über die Konfigurationsdatei chrony.conf konfiguriert wird und das Kommandozeilenwerkzeug chronyc. In der Datei /etc/chrony /chrony.conf können ähnliche Parameter festgelegt werden, wie in der Datei ntpd.conf. Wenn Sie chrony nicht nur als Client verwenden wollen, müssen Sie über ein allow-Statement den Zugriff erlauben.
root dispersion:
 
0.02531 s
In der Standardeinstellung fungiert chrony nicht als Server. Sie müssen den Zugriff auf den Zeitserver aus bestimmten Netzen erlauben. Um den Zugriff aus allen privaten C-Klasse-Netzen zu erlauben, können Sie einen solchen Eintrag erstellen:
reference ID:
 
[192.53.103.108]
Nach der Installation von ''chrony'' durch das Paketmanagement haben Sie den Daemon ''chronyd'', der über die Konfigurationsdatei ''chrony.conf'' konfiguriert wird und das Kommandozeilenwerkzeug ''chronyc''. In der Datei ''/etc/chrony'' ''/chrony.conf'' können ähnliche Parameter festgelegt werden, wie in der Datei ''ntpd.conf.'' Wenn Sie ''chrony'' nicht nur als Client verwenden wollen, müssen Sie über ein allow-Statement den Zugriff erlauben. In der Standardeinstellung fungiert ''chrony'' nicht als Server. Sie müssen den Zugriff auf den Zeitserver aus bestimmten Netzen erlauben. Um den Zugriff aus allen privaten C-Klasse-Netzen zu erlauben, können Sie einen solchen Eintrag erstellen:
reference time:
 
de60cef4.ac5938de Sat, Mar 24 2018 14:19:48.673
allow 192.168/16
system flags:
auth monitor ntp kernel stats
jitter:
0.004898 s
stability:
236.358 ppm
broadcastdelay:
0.003998 s
authdelay:
0.000000 s
ntpdc>
<br>
Beide Diagnoseprogramme geben große Informationsmengen aus, weshalb es hier
auch bei diesem einen Beispiel bleiben soll. Sehr interessant sind sicherlich nochAbfragen nach peers und monlist. Probieren Sie diese doch einfach einmal aus.
<br>
Eine andere Implementierung des NTP ist chrony. Dieser Daemon gilt als unempfindlich und ist deshalb besonders geeignet für virtuelle Maschinen oder Systeme, die nicht permanent laufen. Die Einstellung der RTC ist in chrony integriert und muss deshalb nicht von einem zusätzlichen Programm durchgeführt werden. Die Zeitsynchronisation ist gegenüber ntpd schneller und genauer.
<br>
Nach der Installation von chrony durch das Paketmanagement haben Sie den Daemon
chronyd, der über die Konfigurationsdatei chrony.conf konfiguriert wird und das Kommandozeilenwerkzeug chronyc. In der Datei /etc/chrony/chrony.conf können ähnliche Parameter festgelegt werden, wie in der Datei ntpd.conf. Wenn Sie chrony nicht nur als Client verwenden wollen, müssen Sie über ein allow-Statement den Zugriff erlauben. In der Standardeinstellung fungiert chrony nicht als Server. Sie müssen den Zugriff auf den Zeitserver aus bestimmten Netzen erlauben. Um den Zugriff aus allen privaten C-Klasse-Netzen zu erlauben, können Sie einen solchen Eintrag erstellen:
<br>
allow 192.168/16
<br>
Wenn der Zugriff von überall her erlaubt werden soll, reicht ein Eintrag wie dieser:
Wenn der Zugriff von überall her erlaubt werden soll, reicht ein Eintrag wie dieser:
<br>
allow 0/0
allow 0/0
Das Kommandozeilenwerkzeug ''chronyc'' kann direkt als Kommandozeile oder interaktiv verwendet werden.  
<br>
 
Das Kommandozeilenwerkzeug chronyc kann direkt als Kommandozeile oder inter-
Hier ein interaktives Beispiel:
aktiv verwendet werden. Hier ein interaktives Beispiel:
 
<br>
# chronyc
root@uvm1:~# chronyc
chronyc> sources -v
<br>
210 Number of sources = 4  
chronyc> sources -v
  .-- Source mode '^' = server, '=' = peer, '#' = local clock.
210 Number of sources = 4
  / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
    | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
||                                                 .- xxxx [ yyyy ] +/- zzzz
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||       Reachability register (octal) -.           | xxxx = adjusted offset,
||
||       Log2(Polling interval) --.     |         | yyyy = measured offset,
.- xxxx [ yyyy ] +/- zzzz
||                                 \     |         | zzzz = estimated error.
||
||                                 |   |           \
Reachability register (octal) -.
  MS Name/IP address         Stratum Poll Reach LastRx Last sample
| xxxx = adjusted offset,
===========================================================================
||
^- b.fu110.de                  3  6  377  36  +5041us[+5041us] +/-  92ms
Log2(Polling interval) --.
^+ public-dns-a.primawebtool    2  6  377  37  +1762us[+1889us] +/-  47ms
|
^+ scrollout.family-adam.de    2  6  377  35  -3393us[-3393us] +/-  36ms
| yyyy = measured offset,
^* stratum2-3.NTP.TechFak.Un    2  6  377  37  +710us[ +837us]  +/-  17ms
||
 
\
= Links =
|
== Intern ==
| zzzz = estimated error.
#
||
== Weblinks ==
|
#
|
  \
MS Name/IP address
Stratum Poll Reach LastRx Last sample


===========================================================================
[[Kategorie:Linux/LPIC/102]]
^- b.fu110.de
3 6 377
36 +5041us[+5041us] +/- 92ms
^+ public-dns-a.primawebtool 2 6 377
37 +1762us[+1889us] +/- 47ms
^+ scrollout.family-adam.de
2 6 377
35 -3393us[-3393us] +/- 36ms
^* stratum2-3.NTP.TechFak.Un 2 6 377
37 +710us[ +837us] +/- 17ms

Aktuelle Version vom 28. Mai 2023, 08:08 Uhr

Wichtigste Wissensgebiete

  1. Systemzeit und -datum setzen
  2. die Hardwareuhr auf die korrekte Zeit in UTC setzen
  3. die korrekte Zeitzone einstellen
  4. grundlegende NTP-Konfiguration unter Verwendung von ntpd und chrony
  5. Wissen über den Gebrauch von pool.ntp.org
  6. Kenntnis des ntpq-Kommandos

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

  • /usr/share/zoneinfo
  • /etc/timezone
  • /etc/localtime
  • /etc/ntp.conf
  • /etc/chrony.conf
  • date
  • hwclock
  • timedatectl
  • ntpd
  • ntpdate
  • chronyc
  • pool.ntp.org

Manuelle Konfiguration der Systemzeit

Die manuelle Konfiguration der Systemzeit erfolgt über das Kommando date. Wenn Sie date ohne Parameter starten, werden das aktuelle Datum und die Uhrzeit ausgegeben.

# date
Di 24. Apr 17:54:52 CEST 2018

die Uhrzeit mittels date ändern:

# date -s 1755
Di 24. Apr 17:55:00 CEST 2018

Die Uhr wurde nun erfolgreich auf 17.55 Uhr eingestellt.

Für bessere Darstellungen kann man date + verwenden

Das sieht z. B. so aus:
# date "+Heute ist der %d.%m.%Y. Das ist der %j. Tag des Jahres."
Heute ist der 24.04.2018. Das ist der 118. Tag des Jahres.

Mit dem Befehl date --help werden dir weitere Variablen anzeigt.

Die RTC-Uhr einstellen

Eine Echtzeituhr (englisch real-time clock, RTC) oder physikalische Uhr ist eine Uhr, welche die physikalische Zeit misst. Mit dem Kommando hwclock können Sie die Systemzeit in die Hardwareuhr schreiben oder umgekehrt. Folgendes Kommando schreibt die Systemzeit in die Echtzeituhr:

# hwclock --systohc

Umgekehrt holt folgender Befehl die Zeit bei der RTC ab und stellt danach die Systemzeit ein:

# hwclock --hctosys

Die Differenz ziwschen Hardwareuhr und der Systemzeit lässt sich mit hwclock ermitteln, indem Sie folgendes Kommando verwenden:

# hwclock --show
Di 24 Apr 2018 17:58:13 CEST -0.020712 Sekunden

Zeitzonen

Damit die Lokaluhrzeit den Benutzer angezeigt wird, muss die BIOS-Uhr (RTC) auf UTC eingestellt werden. Wichtige Konfigurationsdateien:

  • /usr/share/zoneinfo – in diesem Verzeichnis befinden sich Binärdateien, die mit allen existierenden Zeitzonen korrespondieren.
  • /etc/localtime – diese Datei ist die mit der aktuellen Zeitzone übereinstimmende
  • Binärdatei aus /usr/share/zoneinfo. Es kann sich hier um eine Kopie oder einen Softlink zur Originaldatei handeln.
  • /etc/timezone ist eine textbasierte Konfigurationsdatei. Sie können die richtige Zeitzone in dieser Datei einfach eintragen.

Um einen Überblick über die verfügbaren Zeitzonen zu bekommen, können Sie tzselect verwenden.

timedatectl

Der Befehl 'timedatectl kombiniert und erweitert die Funktionalität der Befehle date und hwclock.

Die Verwendung von timedatectl ohne Optionen gibt Ihnen eine Menge hilfreicher Informationen:

[root@scientific ~]# timedatectl
Local time:       Sa 2018-04-21 13:49:47 CEST
Universal time:   Sa 2018-04-21 11:49:47 UTC
RTC time:         Sa 2018-04-21 11:49:47
Time zone:        Europe/Berlin (CEST, +0200)
NTP enabled:      no
NTP synchronized: no
RTC in local TZ:  no
DST active:       yes
Last DST change:  DST began at
                  So 2018-03-25 01:59:59 CET
                  So 2018-03-25 03:00:00 CEST
Next DST change:  DST ends (the clock jumps one hour backwards) at
                  So 2018-10-28 02:59:59 CEST
                  So 2018-10-28 02:00:00 CET

timedatectl unterstützt auch die Ansteuerung von Remotemaschinen und lokalen Containern. Die manuelle Zeiteinstellung einer Remotemaschine geschieht mit dem Kommando:

[root@scientific ~]# timedatectl set-time "2018-03-24 14:24:16" -H archangel

Zeitsynchronisation über das Netzwerk

Für die Zeitsynchronisation über das Netzwerk kommt das Network Time Protocol (NTP) zum Einsatz

Es folgt ein Beispiel mit einem Zugriff auf einen Server:

root@archangel:~# ntpdate pool.ntp.org
24 Apr 18:03:14 ntpdate[30836]: adjust time server 131.234.137.24
offset -0.000341 sec

Mit ntpdate können Zeitserver die Uhrzeit des Systems aktualisieren. Es wird jedoch empfohlen, während der Synchronisation mehrere Server gleichzeitig zu konsultieren, damit die Richtigkeit der übertragenen Zeit überprüft werden kann.

Zeitsynchronisation mit ntpd

Wenn Sie ntpdate regelmäßig von cron ausführen lassen, wird Systemzeit automatisch synchronisiert. Komfortabler und genauer funktioniert dies allerdings mit dem Daemon ntpd.

Die Hauptkonfigurationsdatei für den ntpd ist /etc/ntp.conf. Hier findet der Daemon vor allem die Adressen mit den zur Aktualisierung vorgesehenen Servern und einen Verweis auf den Driftfile. Diese liegt, unter /etc/ntp.drift. Der tatsächliche Speicherort hängt von der verwendeten Distribution ab. Die Mindestausstattung der ntp.conf könnte etwa so aussehen:

server de.pool.ntp.org
server ptbtime1.ptb.de
driftfile /var/lib/ntp/drift/ntp.drift

Mit diesen Einträgen ist der Server schon lauffähig. So Starten Sie den Server /etc/init.d/ntpd start. Nachdem Start wird der Server sofort eine erste Synchronisation durchführen. In Abhängigkeit von der verwendeten Distribution wurde ntpd bereits durch xntpd ersetzt. Die Konfigurationsdateien sind jedoch identisch.

Die Driftdatei wird von ntpd verwendet, um Ungenauigkeiten der Systemuhr festzuhalten. Die Abweichung von der tatsächlichen Zeit wird auf eine millionstel Sekunde ermittelt und in die Driftdatei geschrieben.

Sie können den Daemon ntpd mithilfe des Programms ntpq abfragen. Wenn Sie wissen wollen, welche Server Ihr ntpd kontaktiert, können Sie z. B. dieses Kommando verwenden:

root@archangel:~# ntpq -p
remote refid st t when poll reach delay offset jitter
===================================================================
arcturos.gr 213.239.239.166 3 u 4 64 1 27.057 -1.371 0.000
pyxis.my-rz.de 212.82.32.15 2 u 3 64 1 23.226 1.645 0.000
bytesink.de 131.188.3.223 2 u 2 64 1 32.562 3.667 0.000
ntp1.wtnet.de 10.129.40.211 2 u 1 64 1 29.028 1.428 0.000
golem.canonical 192.93.2.20 2 u - 64 1 32.256 0.875 0.000

Es gibt mehrere Bordwerkzeuge, um den ntpd oder auch xntpd zu untersuchen. Die beiden wichtigsten sind wohl ntpq und ntpdc. Beide Programme unterstützen einen interaktiven Modus, der nach Eingabe eines Fragezeichens Aufschluss über die Möglichkeiten der beiden Programme liefert.

Das Beispiel zeigt eine Abfrage nach sysinfo mit ntpdc im interaktiven Modus:

archangel:/ # ntpdc
ntpdc> sysinfo         
system peer:        ptbtime1.ptb.de
system peer mode:   client
leap indicator:     00
stratum:            2
precision:          -18
root distance:      0.02992 s
root dispersion:    0.02531 s
reference ID:       [192.53.103.108]
reference time:     de60cef4.ac5938de Sat, Mar 24 2018 14:19:48.673
system flags:       auth monitor ntp kernel stats
jitter:             0.004898 s
stability:          236.358 ppm
broadcastdelay:     0.003998 s
authdelay:          0.000000 s
ntpdc>

Die beiden Diagnoseprogramme peers und monlist geben große Informationsmengen aus. Eine weitere Implementierung des NTP ist chrony. Dieser Daemon eignet sich besonders für virtuelle Maschinen oder Systeme, die nicht dauerhaft laufen. Die Einstellung der RTC ist integriert und muss daher nicht vorgenommen werden. Die Zeitsynchronisation ist schneller und genauer als bei ntpd.

Nach der Installation von chrony durch das Paketmanagement haben Sie den Daemon chronyd, der über die Konfigurationsdatei chrony.conf konfiguriert wird und das Kommandozeilenwerkzeug chronyc. In der Datei /etc/chrony /chrony.conf können ähnliche Parameter festgelegt werden, wie in der Datei ntpd.conf. Wenn Sie chrony nicht nur als Client verwenden wollen, müssen Sie über ein allow-Statement den Zugriff erlauben.

In der Standardeinstellung fungiert chrony nicht als Server. Sie müssen den Zugriff auf den Zeitserver aus bestimmten Netzen erlauben. Um den Zugriff aus allen privaten C-Klasse-Netzen zu erlauben, können Sie einen solchen Eintrag erstellen:

Nach der Installation von chrony durch das Paketmanagement haben Sie den Daemon chronyd, der über die Konfigurationsdatei chrony.conf konfiguriert wird und das Kommandozeilenwerkzeug chronyc. In der Datei /etc/chrony /chrony.conf können ähnliche Parameter festgelegt werden, wie in der Datei ntpd.conf. Wenn Sie chrony nicht nur als Client verwenden wollen, müssen Sie über ein allow-Statement den Zugriff erlauben. In der Standardeinstellung fungiert chrony nicht als Server. Sie müssen den Zugriff auf den Zeitserver aus bestimmten Netzen erlauben. Um den Zugriff aus allen privaten C-Klasse-Netzen zu erlauben, können Sie einen solchen Eintrag erstellen:

allow 192.168/16

Wenn der Zugriff von überall her erlaubt werden soll, reicht ein Eintrag wie dieser:

allow 0/0

Das Kommandozeilenwerkzeug chronyc kann direkt als Kommandozeile oder interaktiv verwendet werden.

Hier ein interaktives Beispiel:

# chronyc
chronyc> sources -v
210 Number of sources = 4 
  .-- Source mode '^' = server, '=' = peer, '#' = local clock.
  / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
   | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                  .- xxxx [ yyyy ] +/- zzzz
||       Reachability register (octal) -.           | xxxx = adjusted offset,
||       Log2(Polling interval) --.      |          | yyyy = measured offset,
||                                 \     |          | zzzz = estimated error.
||                                  |    |           \
MS Name/IP address          Stratum Poll Reach LastRx Last sample
===========================================================================
^- b.fu110.de                   3  6   377   36  +5041us[+5041us] +/-  92ms
^+ public-dns-a.primawebtool    2  6   377   37  +1762us[+1889us] +/-  47ms
^+ scrollout.family-adam.de     2  6   377   35  -3393us[-3393us] +/-  36ms
^* stratum2-3.NTP.TechFak.Un    2  6   377   37  +710us[ +837us]  +/-  17ms

Links

Intern

Weblinks