Objetivo
Eu tinha hosts isolados localmente. Eu gostaria que todos tivessem o mesmo tempo. Um assume o papel de servidor de horário, outro sincroniza com ele como clientes.
Todas as máquinas têm tempo de atividade esporádico. Eles raramente são alimentados. Portanto, eles poderiam obter uma compensação significativa. Todo o conjunto de hosts deve ser sincronizado minutos depois de definir manualmente a hora local do servidor.
Para confirmar a confiabilidade, testei a conexão de hosts NTP definindo ótimos ajustes manuais (várias horas) e medi a rapidez com que os clientes sincronizaram.
ntpd - caso ntpd
Eu tentei usarNTPDpara clientes e também para o servidor.NTPDdemora muito para acertar o relógio. Além disso, recusa-se a retroceder algumas horas no tempo.
Se puder ser consertado, prefiro usarNTPDcomo cliente. Então, estou procurando opções de configuração para sugerir ao ntpd que está ansioso para aceitar atualizações de relógio de rede.
Mas se não há como empregarNTPD,ntpdatealternativa ainda é aceitável.
ntpd - caso ntpdate
ntpdateatualiza perfeitamente o relógio sem hesitação. Coloquei-o em uma tarefa cron e obtive uma solução difícil, mas funcional. Infelizmente a primeira impressão estava errada. Depois de vários testes notei que ontpdatecliente começou a recusar o servidor. Por alguns motivos, o servidor decidiu retornar o estrato 16. Eu coloquei explicitamente fudge 127.127.1.0 stratum 8
nontp.confno lado do servidor para evitar esse comportamento exato. Masntpdate -v -da saída mostra "estrato 16" transmitido do servidor.
Então eu vejo duas maneiras. Ou obrigar oNTPDo servidor retorna o estrato 9, independentemente do salto na hora local ou força ontpdatecliente aceite qualquer servidor, mesmo que tenha estrato 16.
Tentei pesquisar no Google de qualquer maneira, mas não encontrei nada. Alguém poderia sugerir opções de configuração adequadas?
Responder1
Use um ntpd
servidor de horário para todos. Todos os PCs reiniciados todos os dias podem sincronizar seus relógios na inicialização por ntpdate
comando. Os relógios de outros servidores podem ser sincronizados por ntpd
serviço porque ele ajusta a hora suavemente.
Para ntpd
uso do servidor de horário principal:
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 2
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust
restrict 127.0.0.0/8
disable auth
logfile /var/log/ntp.log
Responder2
Minha principal sugestão: não faça isso. Tente alterar seus requisitos ou restrições para que você possa ter um sistema sempre ativo que possa ser uma fonte de tempo, ou para que seus sistemas não fiquem isolados e possam obter tempo doconjunto NTP global, ou ambos.
Hoje em dia, você pode obter servidores NTP de baixo consumo de energia com receptores GPS de maneira bastante barata. Se você gosta de DIY, BeagleBones e Raspberry Pis podem ser transformados em servidores NTP por menos de US$ 100, ou se você quiser algo pronto para uso, experimente umLeãoNTP.
Próxima sugestão: se ntpd
demorar muito para atualizar o relógio, provavelmente você precisará verificar sua configuração:
- Certifique-se de estar usando o
-G
sinalizador de linha de comando;-g
é o padrão em algumas distribuições Linux, mas não retrocederá muito. - Certifique-se de que todos os seus servidores/pools estejam configurados com
iburst
. - Use
tinker step 0.5
etinker panic 0
para maximizarntpd
a capacidade de corrigir grandes compensações. - Certifique-se de que seu arquivo de desvio seja gravável
ntpd
e esteja sendo salvo corretamente quando for desligado.
Terceira sugestão (que eu preferiria ntpdate
): experimente chrony
- tem suporte explícito para clientes conectados ocasionalmente (como laptops que são suspensos regularmente). A chrony.conf(5)
página de manual contém todos os detalhes sobre isso. Se você estiver usando uma distribuição onde chrony
é o padrão (CentOS/Red Hat e Ubuntu após o lançamento de 18.04), esta provavelmente seria minha segunda sugestão.
Última sugestão: se ntpdate
estiver reportando um servidor como estrato 16, significa que há algo errado com esse servidor. Tente postar a configuração do servidor e a saída de ntpq -np
e ntpq -nc rv
para que possamos ajudar a diagnosticá-lo.