Wie stelle ich Uhrzeit und Datum im Internet ein?

34

Wie rufe ich das Datum aus dem Internet ab und stelle die Uhr meines Computers über die Befehlszeile ein?

Mohsen
quelle
3
Ich verstehe keine Abstimmungen. Einfache Fragen machen eine Community mächtig. Zum Beispiel siehe dies
Mohsen
3
Wenn ich mit der Maus über den Abwärtspfeil einer Frage schwebe, sehe ich: "Diese Frage zeigt keinen Forschungsaufwand; sie ist unklar oder nicht nützlich." Ich wäre versucht, Ihre Frage auf der Grundlage der ersten (kein Hinweis darauf, was Sie gefunden haben), der zweiten (kein Hinweis darauf, auf welcher bestimmten Plattform Sie arbeiten und warum dies eine Befehlszeile sein muss (anstelle des üblichen Zeitdämons), herunterzustimmen. ) und der dritte (bei den meisten * nix-Benutzern ist standardmäßig ein Zeitdämon installiert).
Anthon
+1 Ich verstehe auch die Abwertungen nicht, nur weil mich das schon oft gestört hat und es unmöglich erscheint, etwas Prägnantes und Nützliches zu diesem bestimmten Thema zu finden.
l0b0
@Mohsen Ich habe nicht abgelehnt, aber der Unterschied zu der Frage, die Sie verlinkt haben, ist, dass es kein switchRuby gibt, während Sie das Datum direkt über date -s(wie in der Manpage gezeigt) einstellen oder einen der unten beschriebenen Befehle verwenden können ...
Ulrich Dangel
1
@Anthon Ich bin anderer Meinung: Bei dieser Frage handelt es sich um ein kleines Gerät mit BusyBox, weshalb der allgemeine Hinweis „NTP verwenden“ nicht unbedingt zutreffend ist
Gilles 'SO - hör auf, böse zu sein',

Antworten:

29

Sie können verwenden:

sudo dpkg-reconfigure tzdata

zum Konfigurieren Ihrer Zeitzone.

Verwenden Sie zum Aktualisieren von Uhrzeit und Datum über das Internet Folgendes:

Installieren

Wenn ntpd nicht installiert ist, verwenden Sie einen der folgenden Befehle, um ntpd zu installieren:

  • Für RPM basiert:

    yum install ntp 
    
  • Für Debian-basierte:

    sudo apt-get install ntp
    

Aufbau

Sie sollten mindestens den folgenden Parameter in der Konfigurationsdatei /etc/ntp.conf festlegen: server

Öffnen Sie beispielsweise die Datei /etc/ntp.conf mit dem Texteditor vi:

  # vi /etc/ntp.conf

Suchen Sie den Serverparameter und stellen Sie ihn wie folgt ein:

  server pool.ntp.org

Speichern Sie die Datei und starten Sie den ntpd-Dienst neu:

  # /etc/init.d/ntpd start

Sie können die Systemuhr sofort mit dem folgenden Befehl mit einem NTP-Server synchronisieren:

  # ntpdate pool.ntp.org

* Verwenden Sie zum manuellen Einstellen von Uhrzeit und Datum die folgende Syntax:

 date --set="STRING"

Legen Sie beispielsweise für neue Daten den 2. Oktober 2006, 18:00:00 Uhr, fest und geben Sie als Root-Benutzer den folgenden Befehl ein:

# date -s "2 OCT 2006 18:00:00"

ODER

# date --set="2 OCT 2006 18:00:00"

Sie können das Format auch mithilfe der folgenden Syntax vereinfachen:

# date +%Y%m%d -s "20081128"

Verwenden Sie zum Festlegen der Uhrzeit die folgende Syntax:

# date +%T -s "10:13:13"

Woher,

10: Stunde (hh) 13: Minute (mm) 13: Sekunde (ss)

Verwenden Sie das Äquivalent von% p locale zu AM oder PM und geben Sie Folgendes ein:

# date +%T%p -s "6:10:30AM"

# date +%T%p -s "12:10:30PM"
tusharmakkar08
quelle
Die Datumsangaben scheinen zwar alle gültig zu sein, berücksichtigen jedoch nirgendwo die Anforderungen from the internetaus dem OP- Titel .
Anthon
Ich glaube, dass TZDATA (Time Zone Data) -Paket die Daten nur aus dem Internet synchronisiert. Korrigiere mich, wenn ich falsch liege.
Tusharmakkar08
3
tzdata ist , Informationen über Zeitzonen und Sommerzeit (Beginn, Ende, Epoche) nicht das tatsächliche Datum und Uhrzeit. Das ist natürlich praktisch, um zu wissen, wie Sie auf der Grundlage Ihrer Zeitzone und einer UTC-Zeit zu Ihrer Ortszeit gelangen. Letztere müssen Sie jedoch noch aus dem Internet abrufen.
Anthon
Sie liegen falsch. Die Zeitzonendaten müssen aktualisiert werden (da ständig Änderungen vorgenommen werden), ABER sie werden nicht automatisch über das Internet aktualisiert ODER stellen die Zeit über das Internet ein.
Ulrich Dangel
@Anthon: Ich habe meine Antwort entsprechend bearbeitet. Danke.
Tusharmakkar08
22

Ein kleiner Code, den ich gefunden habe, um Ihre Zeit zu aktualisieren, falls Sie nichts installieren möchten, nur um das Datum zu aktualisieren. :)

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
Prashant Kabade
quelle
1
Ich google.inerhalte die aktuelle Zeit für meine Zeitzone (INDIA).
Dilawar
Beachten Sie den nachgestellten Wert, Zder angibt, dass die Zeit in der zulu-Zeitzone angegeben ist. Wenn die Zeitzone des Computers richtig eingestellt ist, sollte daher keine spezielle Zeitzonenmanipulation erforderlich sein.
user202729
9

Ich benutze das:

sudo ntpd -qg; sudo hwclock -w

Sagen Sie ntpd zunächst, dass Sie nur die Zeit einstellen und danach mit -q anhalten sollen. Auch wenn Ihre Uhr einen großen Fehler aufweist, müssen wir ntpd anweisen, auch in diesem Fall mit -g zu justieren. Zuletzt schreiben Sie die Uhr auf die Hardware, um die Änderungen beim Neustart mit hwclock -w beizubehalten (-w zum Einstellen der Hardware-Uhr auf die aktuelle Systemzeit, es gibt einen Unterschied).

Silverrocker
quelle
1
Ich mache dies in der Regel mit einem "&&" anstelle des Semikolons, so dass der zweite Befehl kurzgeschlossen wird, wenn der erste Befehl fehlschlägt (z. B. Netzwerkverbindung unterbrochen)
Theophrastus
7

Verwenden Sie ntpdate, ntpd oder Chrony, um eine Verbindung zu einem NTP-Server herzustellen.

Ignacio Vazquez-Abrams
quelle
5

Einige Distributionen versenden rdate für diesen Zweck. Grundsätzliche Verwendung:

# just query
bash-4.2$ rdate pool.ntp.org
rdate: [pool.ntp.org]   Wed Jun 12 11:05:40 2013

# set system time
bash-4.2$ rdate -s pool.ntp.org
Mann bei der Arbeit
quelle
Viel besser und einfacher als NTP
Andrewtweber
pool.ntp.orglehnt nun verbindungen ab rdate. time.nist.govfunktioniert. Sobald Sie die Systemzeit eingestellt haben, sollten Sie auch die Hardware-Uhr hwclock -weinstellen, indem Sie ausführen , um sie auf die Systemzeit einzustellen. Sie können dann überprüfen sie , indem Sie richtig isthwclock -r
MatthewLee
5

Nach einigen Recherchen bin ich zu diesem Ergebnis gekommen. Ich habe es auch auf meinen eigenen Server angewendet:

sudo apt-get install ntp
sudo dpkg-reconfigure ntp
ntpq -p

Wenn der letzte Befehl eine gültige Liste von Servern anzeigt, können Sie loslegen. Der Befehl führt eine ziemlich komplexe Reihe von Algorithmen aus, die unter anderem die Zeitverschiebung durchlaufen und diese kompensieren. Sie erhalten eine ziemlich genaue Uhr, selbst wenn Sie die Verbindung zu den NTP-Servern verlieren. Der Befehl benötigt jedoch einige Minuten, um zu beginnen.

Quelle: hier und hier .

Tubbles
quelle
0

Suchen Sie nach "Peers" (Hosts, die Sie abfragen können), die Sie verwenden können ntpq -p .

Wenn Sie bereits einen NTP-Dienst ausgeführt haben, müssen Sie ihn stoppen, bevor Sie ihn manuell aktualisieren, z. B. mit sudo service ntp stop .

Jetzt können Sie einen Peer abfragen, zum Beispiel mit sudo ntpdate "peer".

l0b0
quelle
0

Mit rdate Werkzeug wie in vorgeschlagen Manatwork ‚s Antwort, aber mit SNTP - Protokoll -nund IPv4 - -4Optionen auf:

# just print synced time, not set
rdate -n -4 -p time-a.nist.gov

# print and set synced time
sudo rdate -n -4 time-a.nist.gov

Das Tool kann auf folgende Weise auf Debian installiert werden:

sudo apt-get install rdate
Sergeant
quelle
0

Zusätzlich zu Tushars Antwort musste ich es auch tunapt-get install ntpdate auf meinem Ubuntu 14.04 machen.

Als Antwort posten, da der Ruf nicht ausreicht, um Kommentare abzugeben.

pylipp
quelle
0

Ich suchte auch nach einer nicht-NTP / NTPD-Methode zum regelmäßigen Zurücksetzen der Uhr. Ich mochte das Parsing der google.com-Header, fand aber, dass es auf Ubuntu nicht funktioniert. Ich denke, das wird auch auf einem Raspberry Pi funktionieren.

sudo date +"%d %b %Y %T %Z" -s "$(wget -qSO- --max-redirect=0 http://google.com 2>&1 | grep '^  Date:' | cut -d' ' -f 5-)"

Auch eine Alternative mit Curl anstelle von Wget.

sudo date +"%d %b %Y %T %Z" -s "$(curl -s --head http://google.com | grep '^Date:' | cut -d' ' -f 3-)"

Getestet auf PI mit Cellular Network und die Ergebnisse sind ähnlich:

Using host & wget -- RCV: 1324 bytes SND: 581 bytes
Using host & curl -- RCV: 1318 bytes SND: 567 bytes

Hinweis Ich verwende host, um google.com in eine IP-Adresse aufzulösen, sodass ich für die Dauer dieses Befehls nur diese IP-Adresse mit iptables öffnen kann.

Ron B
quelle