O cliente Chrony não altera a data do sistema e do hardware

0

Contexto

  • Centos 7
  • chronyd (chrony) versão 3.1

Problema

Estou encontrando um problema com chonyd e data do servidor.

Primeiro, altere a data atual para a data anterior

Alterei a data do relógio do hardware da data real atual mar. nov. 27 15:57:12 CET 2018 para mer. déc. 12 12:12:12 CET 2012 usando os seguintes comandos:

hwclock --set --date="12/12/2012 12:12:12"
hwclock -s

Em seguida, inicie o serviço chronyd para buscar a data real boa

Eu inicio o serviço chronyd usando systemctl start chronyd e verifique o status usando systemctl status chronyd , aqui está a saída para mostrar a você que o serviço chronyd está sendo executado corretamente:

● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since mer. 2012-12-12 12:20:14 CET; 27min ago

...

déc. 12 12:20:17 pad chronyd[1808]: Selected source 178.32.220.7
déc. 12 12:20:17 pad chronyd[1808]: System clock wrong by 188017778.899985 seconds, adjustment started
déc. 12 12:25:37 pad chronyd[1808]: Selected source 62.210.211.218

Aqui está o arquivo de configuração /etc/chrony.conf :

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
hwtimestamp *

# Specify directory for log files.
logdir /var/log/chrony

server 0.fr.pool.ntp.org minpoll 0 maxpoll 0
server 1.fr.pool.ntp.org minpoll 0 maxpoll 0
server 2.fr.pool.ntp.org minpoll 0 maxpoll 0
server 3.fr.pool.ntp.org minpoll 0 maxpoll 0

Aqui está a saída chronyc sources após chronyd start:

^+ obelix.fraho.eu               2   0   377     0   -876us[ -876us] +/-   12ms
^- bb8.dousse.eu                 2   7   377    40  -1547us[-1547us] +/-   52ms
^- cdg1.m-d.net                  2   6   377    39   -806us[ -806us] +/-   33ms
^* cluster004.linocomm.net       2   7   377   100   +330us[ +384us] +/- 7957us

A saída informa que o servidor está conectado, mostrando os caracteres ^+ em% do servidor host obelix.fraho.eu ntp.

Finalmente, eu espero que o daemon chronyd atualize a data e mostre a data

Após mais de 60 minutos, eu executo o comando date no meu terminal e obtenho a seguinte saída:

mer. déc. 12 13:15:04 CET 2012

A data não foi atualizada por chronyd ...

A pasta /var/log/chronyd/ está vazia

Alguma ideia?

    
por Alrick 27.11.2018 / 16:07

1 resposta

2

Citando o FAQ oficial , chronyd ajusta o relógio gradualmente:

By default, chronyd adjusts the clock gradually by slowing it down or speeding it up. If the clock is too far from the true time, it will take a long time to correct the error. The System time value printed by the chronyc's tracking command is the remaining correction that needs to be applied to the system clock.

Como afirmado aqui, você provavelmente seria capaz de verificar se o seu clock está sendo ajustado observando a linha System time da saída de chronyc tracking (veja a seção tracking em man chronyc para detalhes).

Para permitir que chronyd consiga acertar o relógio, você precisa adicionar a diretiva makestep em chrony.conf :

# Step the clock on the first three updates
# if its offset is larger than one second
makestep 1 3

Por vezes - por exemplo em máquinas virtuais, que podem ser suspensas e retomadas - convém deixar chronyd acelerar todas as atualizações, e não apenas as primeiras depois de iniciar:

# Step the clock on any update 
# if its offset is larger than one second
makestep 1 -1

Mas tenha em mente os avisos na documentação oficial (novamente em man chronyc ):

[...] any jump in the time can have adverse consequences for certain application programs.

    
por 27.11.2018 / 17:04