Ajustando a hora do micro com extrema precisão

O artigo descreve procedimentos para o ajuste da hora dos computadores pessoais com precisão, baseado no uso do protocolo NTP aplicado para a sincronização de tempo com relógios padrão.

[ Hits: 34.667 ]

Por: Alberto Federman Neto. em 22/07/2008 | Blog: https://ciencialivre.blog/


Introdução



Computadores pessoais, instrumentos científicos, redes de internet, redes de telefonia etc, necessitam ter horário exato para muitas aplicações. Por exemplo, isto é importante em Computação Distribuída, porque as tarefas do BOINC tem uma determinada "deadline" para serem finalizadas!
No mundo, a hora padrão é definida como UTC ("Universal Time, Coordinated" - Tempo Universal Coordenado), e a referência "Zero Hora", UTC 0.00, é tomada pela Hora de Londres, Inglaterra, Grã Bretanha, pois é baseada na antiga GMT ("Greenwich Meridien Time", Hora do Meridiano de Greenwich), isto é, a Hora Oficial de Londres, que ajustava o relógio "Big-Ben".

Os fusos horários dos diversos países do Mundo baseiam-se na defasagem entre a UTC e a hora de diversos continentes e regiões geográficas.

Assim, a hora do Brasil, a "Hora Oficial do Brasil" é definida como UTC - 3.00, fuso horário do Atlântico, "Atlantic Daylight Time", ADT. Esta é a Hora de Brasília, antiga Hora do Rio de Janeiro.

Para saber a hora com exatidão, como ela é comparativa à UTC, é necessário empregar relógios de alta precisão para definir essa hora... São os "Relógios Padrão" internacionais e dos países.

Ao tempo do "Big Ben", empregavam-se relógios mecânicos especialmente construídos com rolamentos sem atrito, feitos de pedras preciosas, como Safira. Um exemplo é o próprio Big Ben.

Depois, a partir dos anos 40 e 50, usaram-se relógios eletrônicos, de início valvulados e depois transistorizados, que usavam a base de tempo tomada da vibração molecular, por exemplo da amônia.

A partir dos anos 70 esses relógios foram substituídos por mecanismos baseados na "Base de Tempo", tomada de osciladores eletrônicos de alta precisão, controlados por um cristal oscilador de quartzo, cristal de rocha lapidado. São os outrora famosos "Relógios Atômicos".

Curiosamente, são os protótipos dos hoje muito conhecidos relógios digitais de pulso "Quartz". Isto é, você tem um relógio atômico no pulso! Contrariamente ao que se pensava, por causa do termo "atômico", não são radioativos e não oferecem qualquer risco à saúde!

Recentemente, foram de novo substituídos por relógios baseados na vibração interna de átomos do elemento químico Césio, o metal Césio. Trata-se do Césio comum, e não do Césio 137, que é radioativo.
No Brasil a Hora Oficial é definida e medida com exatidão e em relação à UTC pelo Observatório Nacional, ON, Rio de Janeiro, R.J., usando um relógio de Césio desenvolvido pelo Grupo de Pesquisa do Prof. Vandelei Bagnato, da Universidade de São Carlos.

O espelhamento, a passagem da hora para os micros ou dispositivos, é feita através da comunicação com Servidores de Tempo, "Time Servers", através de vários tipos de protocolos, dos quais o mais usado é o NTP ("Network Time Protocol", Protocolo de Tempo em Rede) e o site ON.

Assim, o servidor de tempo que se comunica diretamente com o relógio padrão do Observatório Nacional, é extremamente preciso. Por ser servidor primário, é chamado de "Camada 1", "Stratum 1".

O oficial Stratum 1 do Brasil tem nome e endereço de rede ntp.nic.br, mas existem muitos outros Stratum 1 no Mundo, por exemplo o nist.time.gov, Hora padrão do NIST, National Institute of Standards, Hora Oficial dos Estados Unidos.

Os servidores de tempo são definidos como Stratum 2, 3 ou 4, conforme tomem a hora respectivamente de servidores Stratum 1, 2 ou 3. Assim servidores Stratum 1 e 2 são muito precisos.

Atualmente não se usam muitos servidores Stratum 3 ou 4, mas prefere-se empregar geralmente junções, "pools" de servidores de tempo Stratum 1 ou 2. Exemplos desses "pools" são pool.ntp.org, europe.pool.ntp.org etc.

Os "pools" de servidores de tempo (evitam o congestionamento de servidores únicos) funcionam como o rsync, isto é, nos pools, o primeiro servidor encontrado mais livre é usado.

No Brasil os "pools" de servidores são administrados pelo Comitê Gestor da Internet Brasileira e são três: a.ntp.br; b.ntp.br e c.ntp.br e são conjuntos de servidores de tempo "Stratum 1" e "Stratum 2".
De acordo com comunicação pessoal do ON e documentação em rede, se o servidor estiver próximo do micro a ser ajustado, a precisão pode chegar a 0,0001 seg, isto é, décimo milésimo de segundo! No próprio relógio padrão, a precisão é de milionésimos de segundo!!!

Há vários servidores "Stratum 2" no Brasil. Por me encontrar no estado de São Paulo e trabalhar na USP, eu uso o ntp.usp.br, em São Paulo, Capital, que toma a hora diretamente de ntp.nic.br, Stratum 1.

Existem muitos outros, como ntp.pop-pr.rnp.br, no Paraná.
    Próxima página

Páginas do artigo
   1. Introdução
   2. Sincronizando o tempo em Linux
   3. Sincronizando o tempo em Windows
Outros artigos deste autor

Sabayon Linux: Migrando KDE4 para KDE5

Como usar o Bugzilla do Sabayon

Para iniciantes: Deu tela preta? Não se desespere!

zsh (Z shell) - Uma alternativa ao bash

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Leitura recomendada

Alguns recursos do BASH para você utilizar em seus programas

Antispam em Shell Script

Terminal Didático - Shell Script via WEB (PHP + Bootstrap)

Convertendo TXT ou HTML em OGG

Automatizando a conexão com Internet via ADSL com PPPoE no OpenBSD

  
Comentários
[1] Comentário enviado por MorbiD em 22/07/2008 - 17:22h

como faço para que os clientes de um servidor tenham o mesmo horário?

[2] Comentário enviado por albfneto em 22/07/2008 - 17:43h

Olha, eu uso somente desktops, pq sou quimico e não técnico de computação. A computação é um hobby;
Olha, eu acho que para atualizar hora nas redes, é melhor usar o cron. O Comando que sugiro, atualiza a hora da BIOS e não sei como fica a interação da BIOS do servidor com cada uyma das BIOS dos seus terminais.
Aqui no VOL, todo mundo, cada um , entende mais de uma parte. Com certeza alguémn que mexe com redes vai te ajudar, pq acho que sincronismo de hora é mais importante ainda em redes.

[3] Comentário enviado por albfneto em 22/07/2008 - 17:49h

Por exemplo, no Mandriva, o sistema por default, usa o Pool brasileiro:
brasil.pool.ntp.br

[4] Comentário enviado por gjr_rj em 23/07/2008 - 10:04h

Bacana o artigo, estava fazendo correções da hora na mão de tempos em tempos. Vou por o script no crontab.

Muito maneiro também foi a introdução, eu gosto muito disso, não colocar apenas faça isso ... faça aquilo ..., e sim passar o conhecimento. A "receita de bolo", vou esquecer em 2 dias e quando precisar pego na internet, mas a base teórica fornecida, essa levarei para sempre.

Parabéns!

[5] Comentário enviado por gjr_rj em 23/07/2008 - 10:34h

Aqui não está funcionando.
Uso Debian etch e primeiro o ntpdate não estava instalado. Resolvi com um
# apt-get install ntpdate

Depois, não aparecia a data ao fim da execução, e sim o texto digitado no script. Resolvi alterando a linha do script para

echo -n "A data atual é: "`date +"%d/%m/%Y %H:%M:%S"`

Ai, quando parecia que tudo estava OK e o script foi executado, o servidor me retornou a data com atraso de 1h.
Testei todos os servidores e todos estão com 1h de atraso.

Agora por exemplo está retornando
23 Jul 09:42:46 ntpdate[2911]: adjust time server 143.107.255.15 offset -0.023072 sec
e são 10:42

[6] Comentário enviado por albfneto em 23/07/2008 - 11:33h

veja minha mensagem acima, não tenho muita prática com servidores...., não sou administrador de rede,
mas, não seria alguma config que ficou nos servidores, do horário de verão...

[7] Comentário enviado por irado em 23/07/2008 - 11:45h

funcionalidade perfeita, aqui, parabéns pelo excelente artigo.

aliás.. um artigo primoroso porque informa MUITO a respeito do assunto, bem mais do que simplesmente dar um script e pronto.

parabéns GRANDÃO :)

[8] Comentário enviado por gjr_rj em 23/07/2008 - 11:46h

poderia ser, mas isso significaria que os servidores brasileiros não são confiáveis.

[9] Comentário enviado por albfneto em 23/07/2008 - 13:26h

Bom, o que penso é que seus servidores poderiam conter uma config, pro horário de verão, esquecida desdee o final dele, algo para corrigir pro horario de verão, nos servers locais....
penso isso, pq nos micros que uso, em casa e na fac, a sincronização funciona, usando ntp.ups.br, ou stratum 1 ntp.nic.br ou com o pool a.ntp.br, e no Mandriva da fac, uso a config default mesmo.
Ou seja, será que seus micros estão com uma config, para ajustar pro horario de verão?
pq se a hora que os servidores mostram emmeus micros tá correta, e o seu foi corrigido em décimo de segundo, será que seus micros stão configurados pra atrasar uma hora, é uma hora exata, minutos e segundos também?
nção tem modificador "Daylight Save Time" nos seus servidores ou na BIOS?
Mas como falei, não tenho muita prática com servidores.

[10] Comentário enviado por iz@bel em 23/07/2008 - 17:39h

Boa albfneto !
O relógio do meu PC tá até mal configurado, assim que chegar em casa vou testar....
Parabéns!
[]'s

[11] Comentário enviado por garibaraujo em 24/07/2008 - 02:40h

Aqui funcionou em parte. Quando abro o ajuste do relógio no kde, a hora aparece corretamente. Quando olho no relógio mesmo, lá no canto direito da barra, ele marca 23h43 min, enquanto na configuração são 02h40.

[12] Comentário enviado por thifachini em 24/07/2008 - 11:25h

Caro gjr_rj, os servidores cais, para mim, são extremamente confiaveis, mas vc tem que ajustar seus servidores conforme materia:

http://www.rnp.br/cais/alertas/2007/cais-alr-20071005.html

pois os SO que utilizamos tem padroes gerais, e como nosso horario de verão muda a cada ano, temos que ajusta-los na mão.

att,

[13] Comentário enviado por gjr_rj em 24/07/2008 - 13:15h

Valeu thifachini e albfneto, seguindo as dicas de vocês, encontrei o problema.

Minha timezone estava definida como US/Eastern.

[14] Comentário enviado por gjr_rj em 24/07/2008 - 13:18h

O que acontecerá quando entrar o horário de verão ? o Servidor NTP fará isso automaticamente ?

[15] Comentário enviado por matux em 24/07/2008 - 16:54h

Amigão!!
Obrigado pela dica valiosa!!!
Tava pensando em algo parecido...tenho problemas com a BIOS de um pc aqui que não ajusta a hora porque o chip tá com problemas e essa dica facilitou minha administração aqui.
Obrigado mesmo!
abraço!
by Matux!

[16] Comentário enviado por albfneto em 24/07/2008 - 20:50h

que eu saiba, os servidores ntp, diretamente ou indiretamente, pegam a Hora do Relógio Padrão do Observatório Nacional, quando o ON ajusta a hora do Brasil, o ntp.nic.br pega e espalha pelos outros time servers. Porisso que demora um pouco, ou as vezes adianta um pouco. uns dias,já notou que as vezes, o horário deverão ainda não veio e o seu micro já tá ajustado, como se tivesse começado o HV?
Pois é , esses dias, é pq o ON ajustou o relógio padrão de césio uns dias antes.
Fazem isso para que o horário verão entre em uso, com os relogios padrão acertado

[17] Comentário enviado por albfneto em 30/07/2008 - 20:07h

COMPLEMENTOS DO ARTIGO

Novo servidor de tempo Stratum 1, oficial, além do nic:

ntp.on.br

Voce também pode usar NTPD, mais moderno:

http://www.vivaolinux.com.br/etc/ntp-%28ou-ntpd%29.conf

[18] Comentário enviado por antonio.moreiras em 10/11/2008 - 10:45h

Olá...

O ON tem 2 servidores estrato 1 públicos:

ntp.on.br
ntp2.on.br

O primeiro, na verdade, não é novo... É anterior aos do NIC.br (NTP.br)...

Gostaria de fazer uma crítica construtiva ao artigo, que no geral está muito bom. O ntpdate é um software já depreciado, que provavelmente não estará presente nas próximas releases da distribuição de referência do ntp. Ele não implementa de forma completa o NTP, mas apenas uma parte...

Hoje é recomendado utilizar-se o daemon ntpd, que está inclusive disponível também para windows. A vantagem é que o daemon cria uma espécie de loop fechado para sincronizar o relógio do micro, usando as referências externas para os ajustes... Dessa forma, os ajustes são graduais e contínuos e o relógio permanece por mais tempo correto, mesmo se, temporariamente, perder-se a conexão com a Internet.

Então, fica aqui a sugestão: usar ntpd e não ntpdate para o ajuste. Para mais detalhes, pode-se consultar o http://www.ntp.br.

[19] Comentário enviado por Lisandro em 14/07/2010 - 11:01h

Acertando a hora e o passo ;-)

[20] Comentário enviado por albfneto em 22/08/2014 - 14:22h

OBSERVAÇÃO: 2014

ARTIGO OBSOLETO!

Obsolência:

Esta Dica é Obsoleta.

Agora, é melhor usar NTPD e não Scripts ou comandos ntpdate.

Veja:

http://www.vivaolinux.com.br/artigo/Sincronizando-o-Linux-com-a-Hora-Legal-Brasileira-usando-o-NTP
http://www.vivaolinux.com.br/etc/ntpconf-1


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts