como verificar se o NTP ajustou a hora do sistema no Linux?

18

Eu tenho uma máquina que teve alguns problemas com algumas das coisas em tempo real que estou executando. Uma pista que tenho é que o daemon NTP pode ter mudado o horário, causando falsos tempos limite.

Como descobrir se o daemon NTP realmente mudou o tempo? Algum registro? Eu vejo o daemon NTP reiniciado em / var / log / messages, mas não sei se o ajuste de tempo deve estar lá também.

para esclarecer: eu preciso entendê-lo a partir dos logs, após o evento. Pode ser 2 dias após o horário ser ajustado. A execução de comandos para ver o status atual não ajuda.

n-alexander
fonte

Respostas:

8

Você pode usar o ntpdc -c sysinfocomando para consultar o status ntpd. Retorna uma saída semelhante a esta:

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      338.44917 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  8:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.003998 s
authdelay:            0.000000 s
Janne Pikkarainen
fonte
4

O arquivo drift (/ var / lib / ntp / drift) não mede a diferença entre a hora local e a hora calculada pelo ntpd com base nos servidores de horário contatados.

Em vez disso, é o desvio estimado (erro de frequência) do relógio local (em ppm). Este valor é atualizado pelo ntpd uma vez por hora e não diminui com o tempo.

Tanto quanto eu posso dizer, o valor é usado pelo ntpd após uma reinicialização para estimar quão errado o relógio local está (o relógio local é executado mesmo quando a máquina está desligada).

Exemplo: Conteúdo do arquivo: 5 A máquina foi desligada 1 dia (86400 s) 5 ppm de 86400 é 0,432 => O relógio local é 0,432 s "no futuro"

Os pontos são: - o ntpd agora pode aplicar uma primeira correção aproximada à hora local (-0.432 s) imediatamente após o início - o ntpd sabe imediatamente como o relógio local está errado (neste exemplo: 5 ppm)

(Não tenho permissão para comentar sobre o comentário da Sirex, então adicionei um novo comentário)

Martin Schneeweis
fonte
3

você deve ter um valor no arquivo de deriva. Sua localização será no seu /etc/ntp.conf

por exemplo: "driftfile / var / lib / ntp / drift"

esse arquivo é usado para registrar a que distância o relógio está do que deveria ser e, lentamente, o ntp deve diminuir esse valor à medida que o tempo avança. - Não o faz de uma só vez, porque isso pode causar problemas de registro de data e hora no sistema.

Sirex
fonte
esta é uma boa informação, obrigado. Ainda assim, após a mudança do tempo, será 0 e perderei minhas informações. O ntp não registra nenhuma mensagem para me dizer que foi feito?
N / alexander
3

ntpq -nc peers mostrará seu status de sincronização com todos os pares.

BillThor
fonte
2

Desculpe, este é um tópico antigo - espero não ter quebrado uma regra aqui :)

No /etc/ntp.conf, tenho uma linha parecida com esta:

#statsdir /var/log/ntpstats/

A descrição diz para descomentar esta linha para registrar estatísticas. Acabei de configurar o ntp em nosso servidor, por isso não tenho certeza do que ele registra, mas acabei aqui procurando as mesmas informações, por isso espero que isso ajude outra pessoa.

dsl101
fonte