Cambiar la hora del sistema Linux relativamente

Cambiar la hora del sistema Linux relativamente

Necesito un script que modifique la hora del sistema por xcantidad de minutos. Algo como:

#hora = 12:56
#x = 2

si time_bool:
  tiempo = tiempo + x
  #hora = 12:58
demás:
  tiempo = tiempo - x
  #hora = 12:54

Es parte de algunas pruebas de Red Hat, pero es posible que deba trasladarse a otro sistema operativo (probablemente Fedora o CentOS).

Respuesta1

simplemente podrías hacer

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

La sintaxis de la cadena de fecha GNU datees bastante flexible y permite muchas cosas.

Probado en Ubuntu.

Respuesta2

Una forma sencilla podría ser:

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

(No probado)

Pero no puedo garantizar que esto funcione entre sistemas operativos ya que date +%ses una extensión.

El script intenta obtener la fecha actual UTC, convertirla en segundos de la época, agregar 120 segundos y luego establecer la fecha a partir de los segundos de la época de Unix.

información relacionada