Pular para o conteúdo

Usando NTPDATE para manter a hora certa do seu Linuxbox

Dica publicada em Linux / Miscelânea
Cesar Ramina Cesar.AR
Hits: 81.626 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Usando NTPDATE para manter a hora certa do seu Linuxbox

Para quem quer manter a hora certa do seu Linux, há um programa muito simples, ocupa pouca memória e pode rodar tanto no boot como manualmente. É o ntpdate.

A cada inicialização ele recolhe informações do servidor de hora e acerta a hora do sistema. Pode também ser usado manualmente para corrigir a hora com o comando:

# ntpdate -u ip-do-servidor-de-hora-certa

E para manter o horário Brasileiro, basta colocar um servidor da Hora Legal Brasileira (Observatório Nacional) no arquivo de configuração.

Para isso, depois da instalação (que no caso do Debian é "apt-get install ntpdate"), edite o arquivo /etc/default/ntpdate e substitua o NTPSERVERS para:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
NTPSERVERS="200.20.186.75"

Pronto. Sua hora sempre estará em acordo com o horário oficial Brasileiro. Se na sua instalação você colocou o fuso horário da sua região corretamente, o seu relógio sempre estará acertado, mesmo que mudem os horários de verão.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Usando LANMAP para criar uma imagem da rede local

Simple Server Monitor Bot - Telegram + PHP

Eterm transparente, sem barra de rolagem e de menu

Instalação do Yaourt no Arch Linux

Convite EACOMP

Links em modo gráfico

#1 Comentário enviado por ricleite em 12/09/2006 - 09:56h
Vou tentar enrriquecer um pouco:
Para que o relógio de servidores fique sempre atualizado com o ntpdate é importante que os servidotes de NTP (o protocolo de ajuste de hora) estejam online. Isso nem sempre é possível se usarmos o ntpdate sempre com o mesmo ip de um servidor de tempo.
Para resolver este problema o site ntp.org fornece um alias de dns que retorna aleatoriamente um "pool" de ips de servidores de tempo do mundo todo e também do Brasil:

O comando pra usar o ntpdade usando esse pool de servidores é:

ntpdate pool.ntp.org

E se vc preferir somente servidores brasileiros:

ntpdate br.pool.ntp.org

Isso isto é muito lindo mas pode ainda assim acontecer que justamente o servidor de tempo retornado esteja offiline bem na hora de acertar o tempo e além disso convém que o horário seja sincronizado com o clock de hardware do linux com o comando:
clock -w

Eu fiz um pequeno script (que pode ser rodado diariamente pelo crontab) que tenta se conectar 5 vezes a servidores de tempo brasileiros e acerta a hora e que resolve a maioria dos problemas:


---8<------8<------8<------8<------8<------8<------8<------8<------8<---
#!/bin/bash
RETRY_MAX=5

retry=1
while [ 1 ] ; do

echo "Tentativa:$retry"
ntpdate br.pool.ntp.org

if [ "$?" -ne "1" ]; then
clock -w
echo "OK"
exit 0
fi

let retry=$retry+1
if [ "$retry" -gt "$RETRY_MAX" ] ; then
echo "ERRO: Nao foi possivel ajustar a hora na $RETRY_MAX tentativa."
echo "Provavelmente sem conexao a internet ou sem DNS server"
exit 1
fi
done
#2 Comentário enviado por Cesar.AR em 12/09/2006 - 10:14h
Esse problema que você comentou ocorre com servidores ntp do pool de servidores. O servidor que indiquei (200.20.186.75) é do Observatório Nacional, que tem um relógio de césio e funciona 24 horas por dia. Visite http://pcdsh01.on.br/ - Hora Legal Brasileira do Observatório Nacional.

Obrigado pela contribuição.
#3 Comentário enviado por rovaris em 20/11/2006 - 11:31h
Fiz tudo certinho e ele sincroniza o relógio do meu Debian com 2 horas a mais que o horário certo.. pq?
#4 Comentário enviado por valterrezendeeng em 10/10/2007 - 15:03h
Fiz um pouco diferente mas deu certo

Muito Bom
#5 Comentário enviado por removido em 25/01/2010 - 00:01h
Oi pessoal,

Para acertar a hora no Ubuntu precisei fazer duas alterações no script do Ricardo, a primeira foi acrescentar a opção "-u" para ntpdate e a outra foi alterar o comando "clock" para "hwclock", depois foi só adicionar no crontab e correr pro abraço.

Segue o script com os ajustes:

---8<------8<------8<------8<------8<------8<------8<------8<------8<---
#!/bin/bash
RETRY_MAX=5

retry=1
while [ 1 ] ; do

echo "Tentativa:$retry"
ntpdate -u br.pool.ntp.org

if [ "$?" -ne "1" ]; then
hwclock -w
echo "OK"
exit 0
fi

let retry=$retry+1
if [ "$retry" -gt "$RETRY_MAX" ] ; then
echo "ERRO: Nao foi possivel ajustar a hora na $RETRY_MAX tentativa."
echo "Provavelmente sem conexao a internet ou sem DNS server"
exit 1
fi
done

---8<------8<------8<------8<------8<------8<------8<------8<------8<---

Valeu galera!
#6 Comentário enviado por wosores em 13/10/2022 - 11:57h
Em 2022 se o comando ntpdate não estiver rodando só apontar para o caminho absoluto

#!/bin/bash
RETRY_MAX=5

retry=1
while [ 1 ] ; do

echo "Tentativa:$retry"
ntpdate -u br.pool.ntp.org
/usr/sbin/ntpdate -u br.pool.ntp.org

if [ "$?" -ne "1" ]; then
hwclock -w
echo "OK"
exit 0
fi

let retry=$retry+1
if [ "$retry" -gt "$RETRY_MAX" ] ; then
echo "ERRO: Nao foi possivel ajustar a hora na $RETRY_MAX tentativa."
echo "Provavelmente sem conexao a internet ou sem DNS server"
exit 1
fi
done

Contribuir com comentário

Entre na sua conta para comentar.