Der Befehl zum Ändern des Systemdatums lautet date
.
Es gibt zwei Möglichkeiten, den Date-Befehl aufzurufen (unter Linux):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Einfach
Die einfachste Methode ist die Verwendung, date -s
da einfache relative Daten verwendet werden können
$ date -s yesterday; date
date: cannot set date: Operation not permitted
Sat Jan 5 07:21:07 EST 2019
Sun Jan 6 07:21:07 EST 2019
Das Datum hat sich nicht geändert, da es mit einem eingeschränkten Benutzer ausgeführt wurde $
. Wenn Sie das Datum tatsächlich ändern möchten, verwenden Sie root ( #
) oder sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Das Ändern eines Teils eines relativen Datums ist also so einfach wie das Benennen:
$ date -s "5 years ago"
Mon Jan 6 08:26:26 EST 2014
$ date -s "+6 months"
Sat Jul 6 08:28:39 EDT 2019
$ date -s "+3 hours -13 minutes"
Sun Jan 6 11:16:59 AST 2019
Absolute Daten sind etwas komplexer, da sie detaillierter sein müssen:
$ date -s "2001-07-23 10:11:12"
Oder Sie können den Datumsbefehl zweimal verwenden:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
Ersetzen Sie einen der %
Werte durch einen gültigen Wert und das Datum wird festgelegt (nur als Root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
Direkte
Das zweite Datumsaufrufformular wird verwendet, um das Systemdatum direkt zu ändern.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Damit :
date 11230812 # MMDDhhmm
Stellt das Datum auf den 23. November um 08h und 12min ein.
BSD hat einen ähnlichen Befehl, aber ein anderes Format ([[[[cc] jj] mm] tt] HH] MM [.ss]).
Versuchen Sie date
als eingeschränkter Benutzer zu sehen, was dies tun würde (ohne etwas zu ändern):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
Oder, wenn Sie das Datum tatsächlich ändern möchten, als root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Beachten Sie, dass Dienste wie NTP oder chrony betroffen sind. Und wenn neu gestartet wird, wird das Datum wieder auf das echte zurückgesetzt.
Fügen Sie ein JJ hinzu, um das Jahr einzustellen:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
Oder ein CCYY zum Einstellen von Jahr und Jahrhundert:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982
date --set='-2 years'
die Uhr um zwei Jahre zurückstellen, wobei alle anderen Elemente identisch bleiben. Sie können Monat und Tag des Monats auf die gleiche Weise ändern. Ich habe nicht überprüft, was passiert, wenn diese Berechnung zu einer Datums- und Uhrzeitangabe führt, die nicht tatsächlich vorhanden ist, z. B. während einer Sommerzeitumstellung. Das Verhalten sollte jedoch mit dem üblichen Verhalten "Datum und Uhrzeit auf konkrete Werte einstellen" identisch sein.