Linux-Systemzeit relativ ändern

Linux-Systemzeit relativ ändern

Ich brauche ein Skript, das die Systemzeit in xMinuten anpasst. So etwas wie:

#Zeit = 12:56
#x = 2

wenn time_bool:
  Zeit = Zeit + x
  #Zeit = 12:58
anders:
  Zeit = Zeit - x
  #Zeit = 12:54

Es ist Teil einiger Red Hat-Tests, muss aber möglicherweise auf ein anderes Betriebssystem verschoben werden (wahrscheinlich Fedora oder CentOS).

Antwort1

Sie könnten einfach tun

if $time_bool; then
    date --set="+${x} minutes"
else
    date --set="-${x} minutes"
fi

Die Datumszeichenfolgensyntax GNU dateist recht locker und lässt vieles zu.

Auf Ubuntu getestet.

Antwort2

Ein einfacher Weg könnte sein:

date --set=@$(( $(date +%s) + 120 ))

(Ungetestet)

Ich kann jedoch nicht garantieren, dass dies zwischen Betriebssystemen funktioniert, da es date +%ssich um eine Erweiterung handelt.

Das Skript versucht, das aktuelle Datum (UTC) abzurufen, es in Sekunden aus der Epoche umzuwandeln, 120 Sekunden hinzuzufügen und dann das Datum auf der Grundlage der Unix-Epochensekunden festzulegen.

verwandte Informationen