Zeit per Systemd mit timesyncd synchronisieren

Seit systemd Version 213 ist ein Dienst mit dem Namen timesyncd enthalten, welcher es ermöglicht die Uhrzeit des lokalen Systems mit einem Netzwerkzeitserver zu synchronisieren.

Im Vergleich zu einem "echten" NTP-Server ist in diesem Dienst nur die Clientfunktionalität umgesetzt.

Der aktuelle Zustand kann mit dem Tool

timedatectl
abgefragt werden. Im Folgenden ist ein Beispiel der Ausgabe zu sehen. Anhand dieser ist ersichtlich, dass die Zeit momentan noch nicht synchronisiert wurde.

$ timedatectl
      Local time: Wed 2014-10-29 12:13:26 UTC
  Universal time: Wed 2014-10-29 12:13:26 UTC
        RTC time: Sat 2000-01-01 20:02:58
       Time zone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Falls die Zeitsynchronisation per NTP noch nicht aktiviert muss dies zunächst mit dem folgenden Befehl aktiviert werden.

$ sudo timedatectl set-ntp true

Die zu verwendenden NTP-Server können über die Datei

/etc/systemd/timesyncd.conf
konfiguriert werden. Dazu ist es notwendig die Zeilen mit
NTP
und
FallbackNTP
einzukommentieren. Die bei
NTP
angegeben Server werden normalerweise Verwendet. Ist keiner bei NTP angegeben Server erreichbar wird auf die unter FallbackNTP angegebenen zurückgegriffen.

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# See timesyncd.conf(5) for details

[Time]
NTP=0.de.pool.ntp.org 1.de.pool.ntp.org 2.de.pool.ntp.org
FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org

Über den Statusbericht des

timesyncd
kann herausgefunden werden, mit welchen Server der Dämon die Zeit synchronisiert.

$ systemctl status systemd-timesyncd
* systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled)
   Active: active (running) since Wed 2014-10-29 12:29:27 UTC; 2 months 8 days ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 19219 (systemd-timesyn)
   Status: "Using Time Server 192.168.0.1:123 (192.168.0.1)."
   CGroup: /system.slice/systemd-timesyncd.service
           `-19219 /usr/lib/systemd/systemd-timesyncd

Oct 29 12:29:27 alarm systemd[1]: Started Network Time Synchronization.
Oct 29 12:29:27 alarm systemd-timesyncd[19219]: Using NTP server 192.168.0.1:3 (192.168.0.1).
Jan 04 10:05:49 alarm systemd-timesyncd[19219]: interval/delta/delay/jitter/drift 32s/+5952981.812s/0.002s/0.000s/+0ppm
Jan 04 10:06:21 alarm systemd-timesyncd[19219]: interval/delta/delay/jitter/drift 64s/+0.003s/0.001s/0.001s/+0ppm

Ist die Synchronisation erfolgreich, dann spiegelt sich das auch in der Statusanzeige wieder.

$ timedatectl
      Local time: Tue 2015-01-04 10:06:55 UTC
  Universal time: Tue 2015-01-04 10:06:55 UTC
        RTC time: Sat 2000-01-01 20:20:06
       Time zone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Mit Hilfe von

timedatectl
lässt sich auch die Zeitzone einstellen. Wer unsicher ist, welche Zeitzonen es gibt, kann sich alle zur Verfügung stehenden Zonen mit folgendem Befehl anzeigen lassen.

$ timedatectl list-timezones

Anschließend kann die Zeitzone wie folgt konfiguriert werden.

$ sudo timedatectl set-timezone 'Europe/Berlin'

Nach der erfolgreichen Konfiguration wird die lokale Zeit und auch der Beginn und das Ende der Sommer- bzw. Winterzeit aufgeführt.

$ timedatectl
      Local time: Tue 2015-01-04 11:07:32 CET
  Universal time: Tue 2015-01-04 10:07:32 UTC
        RTC time: Sat 2000-01-01 20:20:43
       Time zone: Europe/Berlin (CET, +0100)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: no
 Last DST change: DST ended at
                  Sun 2014-10-26 02:59:59 CEST
                  Sun 2014-10-26 02:00:00 CET
 Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2015-03-29 01:59:59 CET
                  Sun 2015-03-29 03:00:00 CEST

Mit dem Befehl

`hwclock`
kann die Hardwareuhr mit der aktuellen Systemezeit synchronisiert werden, so dass die Uhrzeit auch beim nächsten Reboot korrekt ist.

$ hwclock -w

Verwandte Artikel