Alterar tempo do sistema Linux relativamente

0

Eu preciso de um script que modifique a hora do sistema em x quantidade de minutos. Algo como:

#time = 12:56
#x = 2

if time_bool:
  time = time + x
  #time = 12:58
else:
  time = time - x
  #time = 12:54

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

    
por Federer 09.05.2012 / 10:27

2 respostas

3

Você poderia simplesmente fazer

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

A sintaxe da string de data em GNU date é bastante solta e permite muitas coisas.

Testado no Ubuntu.

    
por 09.05.2012 / 15:05
0

Uma maneira simples pode ser:

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

(não testado)

Mas não posso garantir que isso funcione entre o sistema operacional, pois date +%s é uma extensão.

O script tenta obter a data atual UTC, converter isso em segundos a partir da época, adicionar 120 segundos e, em seguida, definir a data dos segundos de Unix epoch.

    
por 09.05.2012 / 11:02

Tags