Servidor NTP para manter a hora certa na Raspberry Pi 5

É uma boa prática manter a hora certa na Raspberry Pi. Na verdade, a hora incorretamente configurada causará alguns problemas – inconsistência de dados, falha de sincronização de dados e de agendamento de tarefas. Para evitar esses problemas, primeiro é preciso definir um fuso horário (time zone) de acordo com sua região, dando a Raspberry Pi uma hora local relativamente precisa. Em segundo lugar, usar o NTP (Network Time Protocol) para sincronizar a hora com servidores NTP, mantendo a hora da Raspberry Pi em perfeita ordem. A proposta desse post, é mostrar como definir o fuso horário e sincronizar a hora usando o NTP.

Material necessário

Para realizar este projeto, vamos precisar de :

Nos cartões SD é necessário estar gravado o sistema operacional Raspbian. Qualquer dúvida de como isso deve ser feito, você pode consultar este post.

Definindo o fuso horário

Para começar precisamos de algum tipo de acesso ao terminal, seja remoto via ssh ou local via teclado. Tudo certo? Então vamos lá!

No sistema operacional Raspbian Desktop, a definição do fuso horário é feita na primeira inicialização do sistema.

Imagem 1 - Definindo fuso horário

No sistema operacional Raspbian Lite ou caso queira modificar o fuso horário.

dpkg-reconfigure tzdata

Selecione a área geográfica.

Imagem 2 - Definindo fuso horário

E a cidade ou região correspondente ao seu fuso horário.

Imagem 3 - Definindo fuso horário

Para verificar.

timedatectl

Imagem 4 - NTP na Raspberry Pi

Nesse exemplo, a hora local (Local time) para o fuso horário (Time zone) America/Sao_Paulo é 22:17:31.

A hora universal (Universal time) e seu fuso horário (UTC) – nesse exemplo, 01:17:31 UTC – são a referência a partir do qual se calculam todas as outras zonas horárias.

Sincronizando a hora com NTP na Raspberry Pi

Primeiro vamos instalar os pacotes.

apt-get update && apt-get install ntp -y

É uma boa prática fazer uma cópia do arquivo de configuração antes de editá-lo.

cp -p /etc/ntp.conf /etc/ntp.conf.default

Agora iremos limpar o conteúdo do arquivo.

echo "" > /etc/ntp.conf

Editá-lo.

vim /etc/ntp.conf

Incluir o conteúdo abaixo, fique atento aos comentários!

driftfile /var/lib/ntp/ntp.drift

# Habilite para que as estatísticas sejam registradas.
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Adicione a lista de servidores NTP públicos.
# A diretiva iburst no final de cada linha é para acelerar a sincronização inicial.
server a.st1.ntp.br iburst
server b.st1.ntp.br iburst
server c.st1.ntp.br iburst
server d.st1.ntp.br iburst
server gps.ntp.br iburst
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

# Define as permissões adequadas, concedendo acesso irrestrito apenas ao localhost.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1

E reiniciar os serviços.

systemctl restart ntp

O ntp utiliza a ferramenta ntpq para monitorar seu funcionamento. A seguir são apresentados dois comandos que permitem visualizar algumas informações importantes.

ntpq -p

Imagem 5 - NTP na Raspberry Pi

O * em gps.jd.ntp.br significa que ele foi escolhido como a principal referência para sincronizar a hora. O + em a.ntp.br e d.st1.ntp.br significa que eles também estão sendo usados, mas com menor peso.

ntpq -c rl

Imagem 6 - NTP na Raspberry Pi

A variável offset indica em milissegundo, quanto o relógio local tem de ser adiantado ou atrasado para chegar à hora certa.

É isso, a partir de agora sua Raspberry Pi estará sempre com a hora certa.

Gostou? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial.

Até a próxima!

Faça seu comentário

Acesse sua conta e participe

5 Comentários

  1. Olá,fiz todos os procedimentos, porém quando vou rodar o comando “ntpq -p” ele me retorna todos os parâmetros zerados, como se não estivesse funcionando. O modelo do meu Raspberry é o 3 B+, e está com o Raspbian mais atualizado (Bullseye)

    1. Olá Paulo,

      Existe a possiblidade de ser algum tipo de bloqueio na sua rede.
      Se você conseguir tentar o mesmo comando com o Raspberry em outra rede, ou até mesmo através da internet móvel roteada pelo celular para realizar um teste.

      Abraços!
      Vinícius – Equipe MakerHero

  2. Perfeito… Funcionou o DPKG.

  3. Obrigado isso foi de muita ajuda, abraço

    1. Thiago,

      Que bom que pudemos te ajudar!

      Abraços, e cuide-se com o COVID-19!
      Diogo – Equipe MakerHero