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.273 ]

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


Sincronizando o tempo em Linux



Muitas distros atuais empregam protocolo NTP e acertam a hora do micro, com a Hora do Brasil, ou com servidores internacionais, mas o procedimento a seguir automatizará o processo, escolhendo os servidores adequados e deve funcionar em qualquer distro.

Primeiramente, com um editor de texto, crie o script abaixo:

#!/bin/bash
# Por Alberto Federman Neto, baseado em scripts conhecidos.


# Procurando os servidores NTP ativos.
# Aqui você pode modificar essas linhas, escolhendo os servidores
# de sua preferência. O primeiro da lista é o principal. O segundo
# será conectado se o primeiro estiver inativo, e assim sucessivamente
# melhor usar o mais próximo de sua localização, ou
# a-c.ntp.br, que são os pools brasileiros de servidores de tempo.



ntpdate ntp.usp.br > /dev/null 2>&1 ||
ntpdate ntp.nic.br > /dev/null 2>&1 ||
ntpdate a.ntp.br > /dev/null 2>&1 ||
ntpdate b.ntp.br > /dev/null 2>&1 ||
ntpdate c.ntp.br > /dev/null 2>&1

# Atualiza o relógio da BIOS. A repetição do comando é porque verificou-se
# que a precisão pode chegar a 0.000 segundos, se a sincronização for
# repetida rapidamente

hwclock --systohc && > /dev/null 2>&1
hwclock --systohc && > /dev/null 2>&1

# Exibe a data ajustada
echo " "
echo -n "A data atual é: "date +"%d/%m/%Y %H:%M:%S"
echo " "
exit


Salve o script com o nome hora.sh no diretório /usr/local/bin.

Mova ou copie para o diretório aonde os seus scripts são iniciados automaticamente ao iniciar o Linux. No Sabayon é /etc/init.d.

Torne o script executável com o comando:

$ su
# chmod +x hora.sh


Outras possibilidades de sincronizar o tempo incluem o uso de ntpd com cron e crontab.

Página anterior     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

Fish - Um shell fácil de usar

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

BOINC - Computação distribuída e aplicações científicas

Compiz e Compiz-Fusion no novo Sabayon Linux

Experimento: Transformando openSUSE 12.3 Tumbleweed em 13.2 Factory Milestone 0

Leitura recomendada

Convertendo TXT ou HTML em OGG

Conectando-se à Internet via ADSL com PPPoE no OpenBSD

Automatização de backup

Coloque ordem em seus programas

Backup em HDs da rede

  
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