Wie kann man die aktuelle Zeit aus dem Internet über die Befehlszeile in Linux ermitteln?
Zum Beispiel mit ntpq
Programm?
Hinweis: Nicht von Computer oder Betriebssystemuhr, sondern vom Internet?
Hinweis: Ich möchte weder die Zeit ÄNDERN noch die SYNC-Zeit ändern. WISSEN Sie es einfach.
linux
command-line
ntp
Dims
quelle
quelle
Antworten:
Wenn Sie bash verwenden, erledigt die folgende Zeile den Job
Es nutzt die integrierten Netzwerkfunktionen¹ der Bash-Shell. Wenn Sie eine POSIX-Shell oder eine andere Shell verwenden, können Sie z . B. netcat verwenden.
Beide Befehle fragen den Timer-Server an TCP-Port 13 des National Institute of Standards and Technology ab und geben die empfangenen Daten auf stdout aus.
¹ BEARBEITEN: Von der Bash-Manpage: Bash behandelt mehrere Dateinamen, insbesondere wenn sie in Umleitungen verwendet werden, wie in der folgenden Tabelle beschrieben:
quelle
</dev/tcp/
Format?curl -G --data-urlencode "format=%D-%T\n" http://www.timeapi.org/cet/now?
Pro Distribution stehen mehrere NTP-Dienste zur Verfügung.
Wenn Sie eine einmalige Zeitsynchronisation durchführen möchten :
Stellen Sie die Systemzeit auf die Hardware-Echtzeituhr ein
(Hinweis: Dies funktioniert gut mit Google, da es überall Server gibt.)
Wenn Sie nur sehen möchten, zu welcher Uhrzeit der nächste Server von Google sendet, gehen Sie wie folgt vor:
quelle
Der
ntpdate
Befehl kann dies mit dem-q
Flag tun :Von
man ntpdate
:quelle
Sie können die Zeit auch über das Internet abrufen, indem Sie entweder HTTP mit HTP verwenden, das auf vielen Systemen verfügbar ist, da es
htpdate
normalerweise nur eine Genauigkeit auf die nächste Sekunde hat, oder indem Sie TLS verwendentlsdate
, um eine bessere Genauigkeit zu erzielen:Da ntpdate veraltet ist, können Sie es auch verwenden
sntp
(es wird standardmäßig unter MacOS installiert und ist Teil der ntp-Distributionen), um das Datum genauer zu ermitteln:quelle