Configuração de Fuso Horário e Sincronização de Tempo no Ubuntu

Gerenciamento Moderno de Tempo no Ubuntu

Em versões recentes do Ubuntu, o gerenciamento de tempo e fuso horário é centralizado através do utilitário timedatectl, que faz parte do ecossistema systemd. Esta abordagem substitui métodos legados como o ntpdate e a modificação manual do arquivo /etc/localtime, oferecendo uma configuração mais robusta, segura e integrada ao sistema.

1. Verificando o Status Atual do Sistema

Entes de aplicar quaisquer alterações, é recomendável verificar o estado atual da sincronização, do fuso horário configurado e como o relógio de hardware (RTC) está sendo interpretado.

user@linux-machine:~$ timedatectl status
               Local time: Qui 2023-09-07 03:01:32 UTC
           Universal time: Qui 2023-09-07 03:01:32 UTC
                 RTC time: Qui 2023-09-07 03:01:32
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

2. Definindo o Fuso Horário Correto

Para alinhar o relógio do sistema com a região desejada (por exemplo, o horário padrão de Pequim), utilize o comando set-timezone. Você pode listar todos os fusos horários disponíveis executando timedatectl list-timezones e filtrando com grep.

user@linux-machine:~$ sudo timedatectl set-timezone Asia/Shanghai
[sudo] password for user: 

Este comando atualiza automaticamente o link simbólico /etc/localtime, eliminando a necessidade de cópias manuais de arquivos de zona e evitando erros de digitação.

3. Habilitendo a Sincronização NTP

Em vez de instalar pacotes externos e desatualizados como o ntpdate, o Ubuntu utiliza o systemd-timesyncd por padrão para manter o relógio sincronizado com servidores NTP de forma contínua. Para ativar este serviço, execute:

user@linux-machine:~$ sudo timedatectl set-ntp true
[sudo] password for user: 

O sistema iniciará o serviço automaticamente em segundo plano. Caso prefira usar daemons mais avançados como o chrony ou ntpd, certifique-se de desabilitar o systemd-timesyncd antes para evitar conflitos.

4. Ajuste para Ambientes Dual-Boot (Windows e Linux)

Um problema comum relatado por usuários é a inconsistência de horário ao reiniciar a máquina em ambientes Dual-Boot. Isso ocorre porque o Windows assume que o relógio do hardware (RTC) está no horário local, enquanto o Linux assume que está em UTC. Para forçar o Ubuntu a interpretar o RTC como horário local, resolvendo o conflito com o Windows, execute:

user@linux-machine:~$ sudo timedatectl set-local-rtc 1

Nota: A prática recomendada pela comunidade técnica é manter o RTC em UTC e configurar o Windows para usar UTC, mas o comando acima é a solução rápida pelo lado do Linux.

5. Validando as Alterações

Após configurar o fuso horário, ativar a sincronização e ajustar o RTC (se aplicável), verifique novamente o status para garantir que todas as alterações foram aplciadas corretamente.

user@linux-machine:~$ timedatectl
               Local time: Qui 2023-09-07 11:06:47 CST
           Universal time: Qui 2023-09-07 03:06:47 UTC
                 RTC time: Qui 2023-09-07 11:06:47
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes

Observe que o campo System clock synchronized agora está como yes, o serviço NTP está active e o fuso horário reflete Asia/Shanghai. Para uma verificação rápida no formato RFC 5322, você também pode utilizar o comando tradicional:

user@linux-machine:~$ date -R
Thu, 07 Sep 2023 11:06:47 +0800

Tags: Ubuntu systemd timedatectl NTP timezone

Publicado em 6-24 17:07