GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So stellen Sie Datum und Uhrzeit unter Linux ein

Dieses Tutorial konzentriert sich auf die Techniken zum Einstellen von Datum und Uhrzeit unter Linux mit timedatectl, NTP oder date.

Als Systemadministrator werden Sie möglicherweise aufgefordert, das Systemdatum auf mehreren Servern einzustellen .

Möglicherweise sind sie oder ihre Zeitzonen falsch konfiguriert möglicherweise nicht richtig konfiguriert.

Infolgedessen können einige Ihrer Programme ungültige Daten protokollieren, was beispielsweise dazu führt, dass einige Ihrer Serverprotokolle nicht eingesehen werden können.

In diesem Tutorial werden wir sehen, wie Sie das Datum unter Linux richtig einstellen können, um es Ihrer aktuellen geografischen Zeitzone anzupassen.

Zuerst werfen wir einen Blick auf den Befehl timedatectl mit der Option systemd-timesync . Als Nächstes installieren wir entweder chrony oder NTP Dienste, um unsere Systemdaten effizient zu synchronisieren.

Schließlich verwenden wir das „Datum ”-Befehl, um unser Systemdatum statisch festzulegen.

Wir werden auch die Unterschiede besprechen zwischen diesen Methoden und welche Sie bevorzugt verwenden möchten.

Voraussetzungen

Bevor Sie beginnen, müssen Sie über sudo-Berechtigungen verfügen auf Ihrem Host, um einige der Befehle auszuführen.

Um dies sicherzustellen, können Sie den folgenden Befehl ausführen

$ sudo -l

User user may run the following commands on localhost:
   (ALL) ALL

Wenn Sie keine sudo-Berechtigungen für Ihr Konto haben, folgen Sie diesem Tutorial, um sudo auf Debian-basierten Systemen oder auf Red Hat-basierten Systemen (CentOS, RHEL) zu erhalten

Setze das Datum unter Linux mit timedatectl

Unabhängig davon, ob Sie mit Debian/Ubuntu oder mit RHEL/CentOS arbeiten, die Vorgehensweise zum Festlegen des Datums ist dieselbe.

Um das Datum einzustellen, müssen Sie Ihre Zeitzoneninformationen einstellen und (optional) das NTP-Protokoll aktivieren, damit sich Ihr System mit NTP-Servern synchronisieren kann. Wenn Sie das NTP-Protokoll (mit ntpd oder chrony) nicht verwenden, verwendet Ihr System standardmäßig den Timesync-Dienst.

Wenn Ihre Zeitzone schlecht konfiguriert ist, müssen Sie Ihre Zeitzoneninformationen ändern.

Um Ihre aktuelle Zeitzone unter Linux abzufragen, können Sie den Befehl timedatectl ausführen.

$ timedatectl

                      Local time: Wed 2019-10-16 22:26:23 UTC
                  Universal time: Wed 2019-10-16 22:26:23 UTC
                        RTC time: Wed 2019-10-16 22:26:24
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: no
systemd-timesyncd.service active: inactive
                 RTC in local TZ: no

Angenommen, Sie möchten es ändern.

Verwenden Sie zum Auflisten von Zeitzonen unter Linux die Datei „list-timezones ”-Option mit timedatectl .

$ timedatectl list-timezones

Wie Sie sehen können, werden Zeitzonen mit der folgenden Syntax dargestellt:Kontinent/Region .

Um Ihre Zeitzone auf New York einzustellen, können Sie mit grep einfach danach suchen.

$ timedatectl list-timezones | grep York
America/New_York

Um die Zeitzone festzulegen, verwenden Sie „set-timezone“. ”-Befehl.

$ timedatectl set-timezone America/New_York

Um Ihr aktuelles Systemdatum zu überprüfen, müssen Sie den Befehl timedatectl erneut ausführen.

$ timedatectl

                      Local time: Wed 2019-10-16 18:35:36 EDT
                  Universal time: Wed 2019-10-16 22:35:36 UTC
                        RTC time: Wed 2019-10-16 22:35:36
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: no
systemd-timesyncd.service active: inactive
                 RTC in local TZ: no

Ihr aktuelles Datum ist jedoch noch nicht synchronisiert, Sie müssen den NTP-Dienst aktivieren, damit es synchronisiert werden kann.

Wenn Sie mit einer Distribution mit systemd arbeiten, sollten Sie standardmäßig den systemd-timesync-Daemon haben standardmäßig.

Der Hauptunterschied zwischen systemd-timesync und NTP besteht darin, dass der Daemon nur eine Client-Seite implementiert und keine komplexen Mechanismen wie NTP verwendet.

Um die Zeitsynchronisierung zu aktivieren , führen Sie einfach diesen Befehl aus.

$ timedatectl set-ntp true

systemd-timesyncd.service active: true

Wenn Sie lieber chrony verwenden oder NTP , beschreiben die nächsten Abschnitte, wie Sie NTP einstellen können und chronisch um Ihr Systemdatum zu synchronisieren.

Datum unter Linux mit Chrony (NTP) setzen

Der genaueste Weg, das Datum unter Linux einzustellen, ist die Verwendung des ntp-Protokolls .

Zur Erinnerung:Das NTP-Protokoll wird verwendet, um die Zeit zwischen verschiedenen Servern über ein Netzwerk zu synchronisieren.

Sie verwenden Referenzzeitserver, die mit Ihrem eigenen Server synchronisiert werden, indem Sie Latenzen berechnen, um Referenzserver zu kontaktieren.

Mit dem NTP-Protokoll können Sie ein sehr genaues Datum unter Linux haben .

Um das Datum einzustellen, verwenden Sie die chrony Dienst.

Stellen Sie zunächst sicher, dass der timesyncd-Dienst nicht auf Ihrem Host läuft.

$ sudo systemctl stop systemd-timesyncd.service

Stellen Sie als Nächstes sicher, dass Ihre Pakete auf Ihrem Server auf dem neuesten Stand sind.

$ sudo yum update

Installieren Sie dann das Chrony-Paket mit YUM.

$ sudo yum install chrony           [RHEL, CentOS]
$ sudo apt-get install chrony       [Debian, Ubuntu]

In den meisten Fällen ist der Chrony-Dienst möglicherweise standardmäßig auf Ihrer Distribution installiert.

Um den Chrony-Dienst zu aktivieren und zu starten, müssen Sie die folgenden Befehle ausführen.

$ sudo systemctl enable chronyd
$ sudo systemctl start chronyd

Überprüfen Sie den Status Ihres Dienstes mit dem Statusbefehl.

$ sudo systemctl status chronyd

Nachdem Chrony nun auf Ihrem System installiert ist, können Sie Ihr Systemdatum ändern, indem Sie die Zeitzone Ihres Systems anpassen.

Beachten Sie, dass Sie das NTP-Protokoll für den Befehl timedatectl nicht aktivieren müssen, da das Starten von chrony automatisch den systemd-timesync-Daemon deaktiviert, um NTP zu verwenden.

Wenn Sie sich dessen vergewissern möchten, können Sie immer noch den folgenden Befehl ausführen.

$ timedatectl set-ntp true

Führen Sie den Befehl timedatectl erneut aus, um sicherzustellen, dass alles synchronisiert ist.

$ timedatectl

                      Local time: Wed 2019-10-17 18:37:37 EDT
                  Universal time: Wed 2019-10-16 22:37:37 UTC
                        RTC time: Wed 2019-10-16 22:37:33
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
       NTP service: active
                 RTC in local TZ: no

Hinweis :Anstatt „NTP-Dienst“ zu haben, können Sie das Label „systemd-timesyncd.service active“ weiterhin auf „yes“ setzen. Das bedeutet nicht, dass der Dienst aktiv ist, aber es bedeutet, dass der Host chrony zur Synchronisierung verwendet.

Sie können auch „date“ ausführen ” um Ihr aktuelles Systemdatum zu prüfen.

$ date 
Thu Oct 17 13:16:10 EDT 2019

Großartig!

Sie haben erfolgreich Ihr Datum unter Linux eingestellt (CentOS/RHEL) mit chrony.

Datum unter Linux mit ntpd (NTP) einstellen

Wie zuvor beschrieben, ist die Verwendung des NTP-Protokolls wahrscheinlich der genaueste Weg, um Ihr Datum auf Ubuntu und Debian einzustellen.

Als erstes werden Sie den ntp-Dienst auf Ihrem Host installieren .

Um einen NTP-Client zu installieren, führen Sie einfach den folgenden Befehl aus.

$ sudo apt-get install ntp     [Debian, Ubuntu]
$ sudo yum install ntp         [CentOS, RHEL]

Standardmäßig wird durch Ausführen dieses Befehls ein NTP (Network Time Service) installiert und aktiviert )-Dienst auf Ihrem Host.

Um dies sicherzustellen, rufen Sie den Status des NTP-Dienstes ab.

$ sudo systemctl status ntp

Standardmäßig wird durch Ausführen oder Neustarten des NTP-Dienstes der NTP-Dienst für den Befehl timedatectl nicht aktiviert.

Um die NTP-Synchronisation zu aktivieren, geben Sie die Datei „set-ntp ”-Option.

$ timedatectl set-ntp true

Führen Sie erneut einen einfachen timedatectl-Befehl aus, um sicherzustellen, dass alles ordnungsgemäß ausgeführt wird.

$ timedatectl

                      Local time: Wed 2019-10-17 18:37:37 EDT
                  Universal time: Wed 2019-10-16 22:37:37 UTC
                        RTC time: Wed 2019-10-16 22:37:33
                       Time zone: America/New_York (EDT, -0400)
       System clock synchronized: yes
       systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Großartig !

Sie haben das Datum unter Linux mit ntp richtig eingestellt .

Stellen Sie das Datum unter Linux mit dem Datumsbefehl ein

Eine Möglichkeit, das Datum unter Linux einzustellen, ist die Verwendung des date-Befehls.

Einer der Hauptfehler dieses Ansatzes ist die Tatsache, dass Sie niemals so genau sein werden, wie die Zeitzone einzustellen und sie mit timesyncd oder chronyd zu synchronisieren.

Es ist jedoch immer noch möglich, dies auf diese Weise zu tun.

Deaktivieren Sie zunächst die Zeitsynchronisierung auf Ihrem Host, da sonst Ihre manuelle Datumsänderung jedes Mal vom Synchronisierungsdienst gelöscht wird.

$ sudo timedatectl set-ntp false

Um das Datum einzustellen, verwenden Sie "date" mit der Option "-s".

$ date -s <date>

Verwenden Sie beispielsweise das Format JJJJ-MM-TT , können Sie das Datum auf diese Weise einstellen.

$ date -s '2019-10-17 12:00:00'
Thu Oct 17 12:00:03 EDT 2019

$ date -s '23 October 2019 12:00:00'
Wed Oct 23 12:00:00 EDT 2019

Sie können auch Shortcuts verwenden um das Datum einfach einzustellen.

Wenn Sie nur das Jahr ändern möchten, können Sie „nächstes Jahr verwenden “ oder „letztes Jahr ” Verknüpfung.

$ sudo date -s "next year"
Sat Oct 17 12:02:21 EDT 2020

$ sudo date -s "last year"
Thu Oct 17 12:02:43 EDT 2018

Mit den folgenden Tastenkombinationen können Sie auch nur den Monat oder den Tag ändern.

$ sudo date -s "next day"
Tue Oct 18 00:00:12 EDT 2019

$ sudo date -s "monday"
Mon Oct 21 00:00:00 EDT 2019

$ sudo date -s "next hour"
Wed Oct 21 13:00:19 EDT 2019

Synchronisieren Sie Ihre Hardware-Uhr mit Ihrem Systemdatum

Bevor Sie mit Ihren täglichen Systemverwaltungsaufgaben fortfahren, kann es eine gute Idee sein, Ihre Hardwareuhr mit Ihrem Systemdatum zu synchronisieren.

Auf diese Weise stellen Sie sicher, dass Ihre beiden Uhren nicht unterschiedliche Daten und Stunden anzeigen.

Um Ihre Hardware-Uhr mit Ihrem Systemdatum zu synchronisieren, verwenden Sie den Befehl „hwclock“ mit der Option „–systohc“.

$ sudo hwclock --systohc

$ sudo hwclock
2019-10-23 13:03:56.466724-0400

Großartig!

Sie haben erfolgreich synchronisiert Ihre Hardware-Uhr mit Ihrem aktuellen Systemdatum.

Schlussfolgerung

Im heutigen Tutorial haben Sie gelernt, wie Sie das Datum auf jedem Linux-System ganz einfach einstellen können.

Sie haben gelernt, dass Sie die Zeitzone einstellen können und lassen Sie den systemd-timesyncd-Daemon Zeitsynchronisation durchführen.

Wenn Sie nach präziseren und effizienteren Zeitsynchronisierungstechniken suchen, haben Sie gelernt, dass Sie entweder chrony verwenden können oder NTP um dieses Ergebnis zu erzielen.

Sie haben auch gesehen, dass es möglich ist, das Datum mit dem date-Befehl statisch zu setzen.

Wenn Sie an Linux-Systemadministration interessiert sind , wir haben viele Tutorials zu diesem Thema.


Linux
  1. So stellen Sie die Zeitzone ein und synchronisieren die Serverzeit mit NTP in Linux

  2. So stellen oder ändern Sie die Zeitzone in Linux

  3. Stellen Sie Datum, Uhrzeit und Zeitzone auf einem Linux-Server ein

  4. 7 Beispiele für Linux-Datumsbefehle zum Anzeigen und Einstellen der Uhrzeit des Systemdatums

  5. Stellen Sie Systemdatum und -zeit mit C++ unter Linux ein

So stellen Sie Datum, Uhrzeit und Zeitzone in RHEL 8 ein

So stellen Sie Datum und Uhrzeit in Rocky und AlmaLinux ein

So finden Sie das Installationsdatum und die Uhrzeit des Linux-Betriebssystems

So stellen Sie Datum und Uhrzeit auf Rocky Linux 8 Desktop und Server ein

So setzen und löschen Sie Umgebungsvariablen unter Linux

So ändern Sie Datum, Uhrzeit und Zeitzone in Linux Mint 20