PC com bateria RTC de curta duração - como sincronizar o tempo imediatamente na inicialização e evitar saltos no tempo

4

Eu tenho um PC Intel de 64 bits rodando Debian 8 com um clock baseado em capacitor, o que significa que depois de 3 dias sem energia o tempo é perdido do clock do hardware. Para ajudar a contornar isso, eu estava pensando que poderíamos usar um computador próximo na LAN (com um RTC melhor suportado por bateria) para atuar como um servidor NTP local.

Na inicialização, o PC será capaz de executar uma sincronização NTP rápido o suficiente para que, no momento em que os aplicativos "normais" forem iniciados (especialmente nossos aplicativos de usuário), eles estejam usando a hora correta e não descontinuidades de tempo? Nossa principal função é o registro de dados, portanto, se começássemos um arquivo de registro em 1970 e, em seguida, tivéssemos que saltar para 2016, isso seria catastrófico.

    
por EnemyBagJones 03.06.2016 / 16:18

1 resposta

4

Existem duas coisas que você deve fazer. Certifique-se de que ntpd seja iniciado o mais cedo possível na sequência de inicialização e coloque um ntp-wait em algum lugar na sequência de inicialização antes de iniciar qualquer um dos seus aplicativos.

Dependendo da sua versão do Linux, a maneira de obter isso varia. Você deve, no entanto, tornar a inicialização de seu aplicativo dependente da ntp-wait acabamento.

ntp-wait simplesmente espera que o daemon ntpd informe que está sincronizado.

O jeito certo de fazer isso no Debian 8 seria configurar systemd e adicionar um novo serviço para o ntp-wait , do qual seus aplicativos seriam dependentes.

A maneira mais fácil de fazer isso é colocar ntp-wait nos scripts de inicialização dos seus aplicativos.

    
por 03.06.2016 / 16:28