Entendendo a sincronização de horário no Linux

1

Meu /etc/localtime no meu Ubuntu fornece meu fuso horário correto - EAT, que é UTC +3 . O comando date fornece o tempo como 21:44:58 EAT, que é aproximadamente o tempo correto (não estou preocupado com a precisão para o segundo nesta questão).

No entanto, quando eu faço sudo hwclock -r , dá o meu tempo como 12:44:31 AM EAT, que é aproximadamente três horas antes do horário correto. Eu assumo que o relógio do hardware assume que o 21:44 está no UTC.

A execução do comando ntpdate ntp.ubuntu.com não tem efeito no relógio do hardware (retorna 21:44:23).

Quando eu invoco o interpretador python e faço:

import datetime
print datetime.datetime.utcnow()

Isso me dá 18:44:36, que é a hora UTC correta (como por agora).

Então, é que, embora o relógio do hardware esteja errado, o sistema operacional mantém seu próprio horário correto? Como isso parece "ir contra o manual", posso modificar com segurança o relógio do hardware sem bagunçar algum outro componente de tempo?

    
por krm 19.02.2013 / 20:22

1 resposta

0

O sistema operacional sabe que o relógio do seu hardware está configurado para o horário local, não para o UTC. Este é um parâmetro do sistema configurável. As ferramentas do Linux que usam recursos do sistema para gerenciamento de data / fuso horário produzirão o horário correto. hwclock -r está adivinhando que o relógio do seu hardware está configurado para UTC, mas está adivinhando errado e adicionando três horas quando não deveria.

    
por 19.02.2013 / 20:41