Wie kann ich die Systemuhrzeit vor-/zurückstellen?

Wie kann ich die Systemuhrzeit vor-/zurückstellen?

Ich kenne Befehle zum Einstellen einer bestimmten Uhrzeit und/oder eines bestimmten Datums, kann aber keine finden, die die Zeit relativ zur aktuellen Uhrzeit verschieben.

Welche Befehle gibt es, um die Zeit um x Sekunden/Minuten/Stunden vorwärts/rückwärts zu bewegen? (Und möglicherweise auch um Tage/Monate/Jahre?)

Antwort1

Der Befehl zum Einstellen der Systemzeit lautetdate. Sie müssen Root sein, um die Systemzeit einzustellen. datestellt die Zeit auf die angegebene Zeit ein, nicht auf einen relativen Betrag der aktuellen Zeit, da letzteres ziemlich sinnlos wäre. Sie können einen Befehl erstellen, der die aktuelle Zeit um einen relativen Betrag ändert, indem Sie eine Berechnung der Ausgabe von durchführen dateund diese an zurückgeben date, z. B. (unter nicht eingebettetem Linux)

date $(date +%m%d%H%M%Y.%S -d '1 hour ago')

Beachten Sie, dass ein solches Ändern der Uhr ein Zeiterfassungssystem wie NTP durcheinander bringen kann. Stoppen Sie es zuerst.

Durch Ausführen datewird die Systemzeit eingestellt, nicht die Hardware-Uhr. Unter Linux führen Siehwclock --systohcum die Systemzeit auf die Hardware-Uhr zu kopieren; dies geschieht automatisch bei einem sauberen Herunterfahren.

Wenn Sie die Zeit in einer anderen Zeitzone sehen möchten, vergessen Sie all dies und stellen Sie stattdessen die gewünschte Zeitzone ein. Führen Sie unter Linux Folgendes aus:tzselectum die Systemzeitzone einzustellen. Um ein Programm in einer anderen Zeitzone auszuführen, setzen Sie die TZUmgebungsvariable, z. B.

export TZ=Asia/Tokyo
emacs

Wenn Sie ein Programm ausführen und ihm vorgaukeln möchten, dass die Zeit anders ist als sie tatsächlich ist, führen Sie es unter dem Programmfaketime.

faketime '1 hour ago' date

Antwort2

Sie können auch das folgende Format verwenden, um den Zeitabstand zur aktuellen Zeit zu ermitteln:

$ date --date='1 month'
Sun Sep 17 15:01:11 CST 2017
$ date --date='1 month'
Sun Sep 17 15:01:15 CST 2017
$ date --date='1 month 2 hours'
Sun Sep 17 17:01:23 CST 2017
$ date --date='1 month 2 hours 3 minutes'
Sun Sep 17 17:04:30 CST 2017

agoSie können auch Folgendes für einen Zeitpunkt vor dem aktuellen Datum verwenden :

$ date
Fri Aug 18 16:14:41 CST 2017
$ date --date='1 month 2 days ago'
Sat Sep 16 16:14:43 CST 2017

Sie können die --setOption fürEinstellung+Uhrzeit , indem Sie vor der Anzahl der Stunden, Minuten usw., die Sie zum eigentlichen Datum hinzufügen möchten, ein Zeichen hinzufügen :

$ date
Thu Aug 17 15:07:00 CST 2017
$ date --set='+1 day +1 hour'
Fri Aug 18 16:07:24 CST 2017
$ date
Fri Aug 18 16:07:31 CST 2017
$ date --set='+1 month 3 days +1 hour'
Thu Sep 21 17:07:42 CST 2017

Ich hoffe, das ist hilfreich.

Antwort3

date -Ins -s $(date -Ins -d '-1 hour')

Antwort4

Wenn ich mich recht erinnere, gab es in UNIX SVR4 eine Option „-a“ für den Befehl „date“, mit der der Superuser die Uhr um einige Sekunden vorstellen oder zurückstellen konnte.

verwandte Informationen