Wie ändere ich Datum und Uhrzeit des Ubuntu-Servers über die Kommandozeile?

40

Das aktuelle Datum und die Uhrzeit des Ubuntu-Servers unterscheiden sich von Datum und Uhrzeit der Zeitzone. Ich habe versucht mit:

sudo date "30 Sep 2015 4:43:42"

um es zu ändern, aber es hat nicht das Datum und die Uhrzeit geändert, nur auf dem Terminal das Datum und die Uhrzeit gedruckt, die ich geändert habe, aber als ich ausgeführt habe:

sudo hwclock --show

Das Datum und die Uhrzeit sind immer noch die alten.

Wie ändere ich Datum und Uhrzeit von Ubuntu Server richtig?

Priska Aprilia
quelle
Sie haben wirklich "sudo date newdate" - das Wort "newdate" eingegeben?
Wolfgang
1
Nee. Ich habe meine Frage bearbeitet. Ich tippte "30. September 2015 4:43:42"
Priska Aprilia

Antworten:

68

Sie können das Systemdatum mit diesem Befehl einstellen :

sudo date --set="2015-09-30 10:05:59.990"

Bei der Verwendung datesollte es dann korrekt angezeigt werden.

Jetzt sollten Sie auch die Hardware-Uhr im BIOS des Systems so einstellen, dass die Einstellung auch nach einem Neustart erhalten bleibt (während des Starts wird die Systemzeit auf den Wert der Hardware-Uhr gesetzt). Mach das mit hwclock:

sudo hwclock --systohc

Dadurch wird der Systemtaktwert (sys) abgerufen und der Hardwaretakt (hc) festgelegt. Überprüfen Sie es mit dem hwclockBefehl. Beide hwclockund datesollten nun dasselbe Datum und dieselbe Uhrzeit anzeigen.


Um Ihre Zeitzone festzulegen , können Sie diesen Befehl verwenden:

sudo dpkg-reconfigure tzdata

Übrigens : Wenn Sie diesen Computer als Server verwenden, empfehle ich dringend, einen NTP-Client zu verwenden, um die Zeit über das Netzwerk zu synchronisieren . So können Sie sicherstellen, dass auf allen Servern genau dieselbe Uhrzeit eingestellt ist. Dadurch wird die Zeit synchronisiert, während das Gerät läuft. Wenn Sie Anwendungen haben, die von der Synchronisationszeit über den Server abhängig sind, empfehle ich den NTP-Daemon. Je länger es im Hintergrund läuft, desto genauer ist die Zeit.

Chaos
quelle
1
Ich habe den Synchronisationsschritt der Uhr verpasst. Vielen Dank für Ihre Antwort, es hat mir geholfen!
Priska Aprilia
1
3 Option hilft, es hat sich geändert etc / timezone =) wie php.net/manual/en/timezones.php !!! absolut identisch !!!
Vladimir Ch
@VladimirCh Die Namen der zufälligen Zeitzonen sind stadarisiert, sodass keine Systemanpassungen erforderlich sind. Oh, warte ... es gibt auch eine Microsoft-Version ...
PeterM
1
Ich versuche zu ändern, aber es ändert sich nicht: - $ sudo date --set = "2015-09-30 10: 05: 59.990" Mi 30 Sep 10:05:59 +0530 2015 $ date Do 23 Mai 15:10:37 +0530 2019
Vinod
7
  1. Suchen Sie nach Ihrer Zeitzone
timedatectl list-timezones
  1. Stellen Sie Ihre Zeitzone ein
sudo timedatectl set-timezone America/Toronto
  1. Aktivieren timesyncd
sudo timedatectl set-ntp on

Damit sollte die Zeit eingestellt und synchronisiert werden.

Sie können mehr in diesem Tutorial sehen: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04

NatoBoram
quelle
1
Der beste Weg, das Problem zu beheben, ohne Stunden und Minuten manuell einstellen zu müssen! Vielen Dank!
Rafael Moni
4

Ich mag es nicht, die Systemzeit manuell einzustellen. Um dieses Problem zu beheben, musste ich zwei verschiedene Antworten kombinieren.
Um die Systemzeit zu korrigieren, müssen Sie diesen Code verwenden:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

wie in dieser Antwort angegeben
Dann synchronisieren Sie die Hardware-Uhr mit der Systemuhr unter Verwendung von

sudo hwclock --systohc

wie von @chaos in diesem Thread angegeben.

twitu
quelle
1

einfach eintippen

sudo date newdatestring

mit newdatestring im Format nnddhhmmyyyy.ss

  • nn: der (zweistellige) Monat (01 bis 12)
  • dd: der (zweistellige) Tag (01 bis 31), wobei die regulären Regeln für Tage nach Monat und Jahr gelten
  • hh: die (zweistellige) Stunde (00 bis 23)
  • mm: die (zweistellige) Minute (00 bis 59)
  • JJJJ: das Jahr; es kann zweistellig oder vierstellig sein
  • ss ist eine zweistellige Sekunde (00 bis 59). Beachten Sie den Punkt '.' vor dem ss.

Aber vielleicht bevorzugen Sie neben dem Datumsbefehl die NTP- "Lösung" (Network Time Protocol): Serverguide - NTP , viel einfacher zu handhaben und präziser als das manuelle Einstellen des Datums. Sie können einen Cronjob oder den NTP-Daemon (NTPD) verwenden, um Ihre Zeit alle x Stunden / Minuten zu aktualisieren ...

Hoffe das hilft!

Wolfgang
quelle
Ungültiger Datumsbereich, als ich es mit "093005082015.15" versuchte, der für den 30. September 2015, 05:08:15 Uhr
Priska Aprilia,
sudo date "093005082015.15" arbeite an meinem.
Vusan
0

Für diejenigen, die nach der Epoche Sekunden Version suchen

  1. Stellen Sie das aktuelle Datum und die Uhrzeit ein

    sudo date -s @1565864862
  2. Holen Sie sich das aktuelle Datum und die Uhrzeit

    date +%s
    

    Ausgänge 1565864862

Jossef Harush
quelle