Este artigo descreve como configurar o fuso horário e sincronizar o tempo em servidores Ubuntu 20.04. O ambiente inclui um usuário não-root com privilégios sudo e um firewall ativado.
Comandos Básicos de Tempo
Para verificar a hora do sistema no Ubuntu 20.04, utilize o comando date. Qualqeur usuário pode executar este comando para consultar data e hora:
Normalmente, os servidores utilizam o tempo UTC (Tempo Universal Coordenado) como padrão.
date
Qui Ago 5 15:55:20 UTC 2021
O tempo UTC, também conhecido como Tempo Universal Coordenado, refere-se ao tempo na linha de longitude zero. O tempo UTC pode não refletir o horário do seu fuso horário atual, mas se seus serviços abrangem múltiplos fusos horários, o uso do tempo UTC previne confusões.
A linha de 0° longitude é variável, qualquer meridiano pode ser o meridiano de 0° em um determinado momento
0° longitude = meridiano de Greenwich
Para alterar o fuso horário, podemos utilizar o comando timedatectl.
Primeiro, execute o seguinte comando para gerar a lista de fusos horários disponíveis:
# Listar fusos horários disponíveis
timedatectl list-timezones
A lista de fusos horários será exibida na tela. Você pode usar SPACE para avançar páginas e b para voltar. Após encontrar o fuso horário correto, anote-o e digite q para sair da lista.
Em seguida, use o comando timedatectl set-timezone para definir o fuso horário, substituindo a parte destacada abaixo pelo fuso horário local encontrado na lista:
# Definir fuso horário de São Paulo
sudo timedatectl set-timezone America/Sao_Paulo
Historicamente, a sincronização de tempo em redes era gerida pelo "ntpd", que se conectava a outros servidores NTP para fornecer atualizações contínuas e precisas de tempo.
No entanto, no Ubuntu 20.04, o sistema padrão utiliza timesyncd em vez de ntpd. O timesyncd também se conecta a servidores de tempo, mas é mais leve e tem melhor integração com o systemd do Ubuntu.
Você pode verificar o status do timesyncd executando diretamente o comando timedatectl.
# Verificar status NTP
timedatectl status ou timedatectl
Hora local: Sex 2023-01-06 14:41:01 BRST
Tempo universal: Sex 2023-01-06 06:41:01 UTC
Tempo RTC: Sex 2023-01-06 06:41:01
Fuso horário: America/Sao_Paulo (BRST, -0300)
Relógio do sistema sincronizado: sim
Serviço NTP: ativo
RTC no TZ local: não
A mensagem "Relógio do sistema sincronizado: sim" indica que a sincronização de tempo está funcionando coretamente, enquanto "Serviço NTP: ativo" mostra que o timesyncd está em execução.
Se a saída indicar que o serviço NTP não está ativo, você pode ativá-lo com o seguinte comando:
sudo timedatectl set-ntp on
Em seguida, execute novamente timedatectl para confirmar o status da sincronização de tempo.
*Caminho de configuração do servidor NTP: /etc/systemd/timesyncd.conf
Formato:
# Veja timesyncd.conf(5) para detalhes.
[Time]
NTP=time-servidor-exemplo.com
Alternando para ntpd
Na maioria dos casos, o timesyncd é suficiente. No entanto, em algumas situações específicas, o programa timesyncd pode enfrentar interferências. Nessas circunstâncias, você pode usar ntpd.
Primeiro, precisamos desativar o timesyncd para evitar conflitos entre os dois serviços:
sudo timedatectl set-ntp no
Verifique se a sincronização de tempo foi desativada:
timedatectl
Verifique se a saída mostra "Serviço NTP: inativo". Isso significa que o timesyncd foi parado.
Agora, execute apt update para atualizar o índice de pacotes local:
sudo apt update
Em seguida, execute apt install ntp para instalar o pacote ntp:
sudo apt install ntp
Após a enstalação, o ntpd iniciará automaticamente. Você pode verificar seu status de operação normal com:
ntpq -p
Saída
remoto refid st t quando polling reach atraso desvio flutuacao
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
+t1.time.bf1.yah 129.6.15.28 2 u 16 64 1 61.766 -20.068 1.964
+puppet.kenyonra 80.72.67.48 3 u 16 64 1 2.622 -18.407 2.407
*ntp3.sua.org .GPS. 1 u 15 64 1 50.303 -17.499 2.708
+time.cloudflare 10.4.1.175 3 u 15 64 1 1.488 -18.295 2.670
+mis.wci.com 216.218.254.202 2 u 15 64 1 21.527 -18.377 2.414
+ipv4.ntp1.rbaum 69.89.207.99 2 u 12 64 1 49.741 -17.897 3.417
+time.cloudflare 10.4.1.175 3 u 15 64 1 1.039 -16.692 3.378
+108.61.73.243 129.6.15.29 2 u 14 64 1 70.060 -16.993 3.363
+ny-time.gofile. 129.6.15.28 2 u 21 64 1 75.349 -18.333 2.763
golem.canonical 17.253.34.123 2 u 28 64 1 134.482 -21.655 0.000
ntp3.junkemailf 216.218.254.202 2 u 19 64 1 2.632 -16.330 4.387
clock.xmission. .XMIS. 1 u 18 64 1 24.927 -16.712 3.415
alphyn.canonica 142.3.100.2 2 u 26 64 1 73.612 -19.371 0.000
strongbad.voice 192.5.41.209 2 u 17 64 1 70.766 -18.159 3.481
chilipepper.can 17.253.34.123 2 u 25 64 1 134.982 -19.848 0.000
pugot.canonical 145.238.203.14 2 u 28 64 1 135.694 -21.075 0.000
O ntpq é uma ferramenta de consulta para o ntpd. O parâmetro -p solicita informações sobre os servidores NTP aos quais o ntpd está conectado.