Alterar a hora do sistema Linux relativamente

Alterar a hora do sistema Linux relativamente

Preciso de um script que modifique a hora do sistema em xminutos. Algo como:

#hora = 12:56
#x = 2

se time_bool:
  tempo = tempo + x
  #hora = 12:58
outro:
  tempo = tempo - x
  #hora = 12:54

Faz parte de alguns testes do Red Hat, mas pode precisar ser movido para outro sistema operacional (provavelmente Fedora ou CentOS).

Responder1

Você poderia simplesmente fazer

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

A sintaxe da string de data GNU dateé bastante flexível e permite muitas coisas.

Testado no Ubuntu.

Responder2

Uma maneira simples pode ser:

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

(Não testado)

Mas não posso garantir que isso funcionará entre sistemas operacionais, pois date +%sé uma extensão.

O script tenta obter a data atual UTC, convertê-la em segundos a partir da época, adicionar 120 segundos e, em seguida, definir a data a partir dos segundos da época Unix.

informação relacionada