Sem saber mais sobre sua configuração, sua teoria parece plausível.
Você desejará alterar seus scripts de inicialização para garantir que seu comando date
, que define a data do sistema, esteja completo antes que ntpdate
seja iniciado.
Eu tenho o seguinte em / var / log / syslog, de ontem (30 de julho)
Dec 16 22:54:05 omap ntpdate[432]: step time server 91.189.94.4 offset 12052648.821465 sec
ntpdate 91.189.94.4 "corrigiu" meu relógio de 30 de julho a 16 de dezembro! De acordo com o link , esse servidor não estava desligado por mais de 2 ms.
Agora, eu tenho um script que chama o comando date
quando o sistema é inicializado para definir o relógio com precisão de ~ 1s. O tempo aproximado é lido de uma rede local e date
é chamado para definir a hora. Eu tenho que fazer algo nesse sentido, já que o sistema não tem relógio de tempo real, e uma conexão com a Internet pode não estar disponível para o NTP.
Não tenho certeza de como o Linux adivinha o horário inicial, quando não há relógio disponível, mas observei que pode estar muito errado (o que é razoável). Meu único pensamento sobre o que aconteceu é:
ntpdate
começou a conversar com o servidor NTP, determinando como o dia 15 de março foi comparado com a data real ntpdate
determinou que o relógio estava 12052648s lento e adicionou a correção, supondo que o relógio ainda estivesse em 15 de março Francamente eu não estou muito familiarizado com o funcionamento do NTP. O acima é razoável? Poderia haver outra explicação?
Não tenho certeza de como seu relógio entrou na condição em que está, mas posso sugerir que você elimine o script que chama o comando date
, se possível?
O método usual para configurar o relógio do sistema na inicialização na maioria dos sistemas com os quais trabalhei é:
ntpd
com o -g
para sincronizar o relógio. -g
é uma opção new-ish que permite ao ntpd acelerar o tempo qualquer - Se a sua versão de ntpd
não suportar esse fkag, você executaria ntpdate -b some.time.server
antes de iniciar o daemon do NTP
Se o seu sistema é tão antigo que está fazendo algo completamente diferente do que isso, ele provavelmente também é tão antigo que não é suportado, então eu não teria nenhum escrúpulo em mudar os scripts de inicialização para ser mais sensato ...
Por que você não está usando o ntpd?
O ntpd é muito mais eficiente para garantir que o seu relógio esteja correto do que o ntpdate porque ele armazena a atualização em pequenas alterações para evitar qualquer tipo de choque ao sistema.
E definitivamente não altera o seu relógio para um mês diferente acidentalmente !
Eu daria instruções mais precisas sobre como instalar e ativar o ntpd em seu sistema, mas você não especificou sua distro.