dmesg time vs tempo de sistema não está correto

10

Espero que aqui esteja alguém que possa me ajudar com esse problema estranho.

Eu acho que sei por que isso está acontecendo, mas não sei como resolvê-lo. Talvez seja porque a hora da BIOS não está correta ou algo parecido. Mas eu não quero mudar a hora do BIOS de aproximadamente 400 servidores. (Ou mude a bateria do BIOS)

root@spool:~# echo TEST > /dev/kmsg
root@spool:~# dmesg -T | tail -1
[Mon Feb 17 04:57:03 2014] TEST
root@spool:~# date
Mon Feb 17 11:45:17 CET 2014

O servidor está executando o ntp para sincronização de horário.

Alguém aqui que sabe como corrigir esse problema no sistema operacional?

Linux spool 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux

Por que, ao ecoar para /dev/kmsg , a data / hora da minha mensagem em dmesg não está sincronizada com a data / hora do sistema?

    
por g00gle 17.02.2014 / 12:58

2 respostas

5

Para verificar sua teoria (que, a propósito, é som), execute o seguinte como root:

hwclock --show

Isso mostrará o relógio do seu hardware no servidor em que você está executando o comando.

Para sincronizar o relógio do hardware com o horário do sistema (gerenciado pelo ntp), execute o seguinte comando:

hwclock --systohc --utc

O último argumento (--utc) diz ao hwclock para armazenar a hora no relógio do hardware em tempo universal coordenado.

Além disso, tenha em mente que a página man do dmesg (1) diz o seguinte, então o comportamento que você está enfrentando está documentado e válido:

   -T, --ctime
          Print human-readable timestamps.

          Be aware that the timestamp could be inaccurate!  The time
          source used for the logs is not updated after system
          SUSPEND/RESUME.
    
por 17.02.2014 / 16:21
6

O dmesg apenas imprime o RingBuffer do kernel, o qual registra as mensagens com tempo de atividade em segundos a partir do início do registro de data e hora.

Portanto, se você usar a opção -T, todos esses valores de tempo de atividade serão adicionados à data em que o sistema foi inicializado. Se você tivesse tempos dormindo em suspender ou retomar, eles são perdidos, portanto, nestes casos, a opção -T não é útil, pois os valores de data / hora não estão corretos e estão no passado.

    
por 22.08.2015 / 12:08