Pesquisa de sites

Como Definir a Hora, Fuso Horário e Sincronizar o Relógio no Linux


Neste artigo, aprenda como definir a hora, o fuso horário e sincronizar o relógio do seu sistema Linux com NTP usando timedatectl, systemd-timesyncd e chrony.

O comando ‘timedatectl‘ é uma ferramenta para distribuições baseadas em RHEL e Debian, e faz parte do gestor de sistema e serviços ‘systemd‘, servindo como substituto do antigo comando date utilizado nas distribuições Linux baseadas em daemon ‘sysvinit‘.

O comando timedatectl permite consultar e alterar a configuração do relógio do sistema e as suas definições. Pode usar este comando para definir ou alterar a data, hora e fuso horário atuais, ou para ativar a sincronização automática do relógio do sistema com um servidor NTP remoto.

Neste tutorial, vou guiá-lo através das formas de gerir o tempo no seu sistema Linux, definindo a data, hora, fuso horário e sincronizando a hora com NTP a partir do terminal usando timedatectl, systemd-timesyncd e chrony.

É sempre uma boa prática manter a hora correta no seu servidor ou sistema Linux, e isso pode ter as seguintes vantagens:

  • Manter a operação atempada das tarefas do sistema, uma vez que a maioria das tarefas no Linux é controlada pelo tempo.
  • Hora exata para registar eventos e outras informações no sistema.
  • Sincronização adequada para sistemas e aplicações distribuídas.
  • Essencial para protocolos de segurança como Kerberos e validação de certificados SSL/TLS.

Como Encontrar e Definir o Fuso Horário Local no Linux

1. Para mostrar a hora e a data atuais no seu sistema, use o comando timedatectl na linha de comando da seguinte forma:

timedatectl  status

Verificar a data e hora do sistema Linux

No output acima, a hora RTC é a hora do relógio de hardware.

2. O horário no seu sistema Linux é sempre gerido através do fuso horário definido no sistema. Para ver o seu fuso horário atual, faça o seguinte:

timedatectl 
OR
timedatectl | grep Time

Verifique o Fuso Horário do Seu Sistema Linux

3. Para ver todos os fusos horários disponíveis, execute o comando abaixo:

timedatectl list-timezones

Listar Todos os Fusos Horários num Sistema Linux

4. Para encontrar o fuso horário local de acordo com a sua localização, execute o seguinte comando.

timedatectl list-timezones |  egrep  -o "Asia/B.*"
timedatectl list-timezones |  egrep  -o "Europe/L.*"
timedatectl list-timezones |  egrep  -o "America/N.*"

Encontre o seu fuso horário local no Linux

5. Para definir o seu fuso horário local no Linux, vamos usar a opção set-timezone, conforme mostrado abaixo.

sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status

Definir o Fuso Horário Local num Sistema Linux

É sempre recomendado usar e definir a hora universal coordenada, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Definir a Hora do Sistema para UTC

Precisa de digitar o nome correto do fuso horário, caso contrário pode ocorrer erros ao alterar o fuso horário. No exemplo seguinte, o fuso horário “Asia/Kolkata” não está correto, causando assim o erro.

failed to set time zone: invalid timezone

Como Definir a Hora e a Data no Linux

Pode definir a data e a hora no seu sistema utilizando o comando timedatectl da seguinte forma:

Definir hora no Linux

6. Para definir apenas a hora, podemos usar um interruptor set-time juntamente com o formato de hora em HH:MM:SS (Hora, Minuto e Segundo).

sudo timedatectl set-time 12:25:30
timedatectl status

Pode receber o seguinte erro ao definir a data conforme indicado acima:

Failed to set time: Automatic time synchronization is enabled

O erro ocorre porque a sincronização automática de tempo (NTP) está ativada, o que impede alterações manuais do tempo.

Para resolver, primeiro desative o NTP e depois defina a hora.

sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status

Definir Data e Hora Local no Linux

7. Para definir tanto a data como a hora, utilize o comando set-time juntamente com o formato da data em YYYY-MM-DD (Ano, Mês, Dia) e a hora em HH:MM:SS (Hora, Minuto e Segundos):

sudo timedatectl set-time '2026-01-23 12:25:30'

Configuração da Data e Hora com o Formato AA:MM:DD e HH:MM:SS

Como Encontrar e Configurar o Relógio de Hardware no Linux

8. Para definir o relógio de hardware para a hora universal coordenada, UTC, use a opção set-local-rtc boolean-value da seguinte forma:

Primeiro, descubra se o relógio do seu hardware está definido para o fuso horário local:

timedatectl | grep local

Defina o relógio do hardware para o fuso horário local:

sudo timedatectl set-local-rtc 1

Definir o Relógio de Hardware para UTC no Linux

Defina o relógio do seu hardware para a hora universal coordenada (UTC):

sudo timedatectl set-local-rtc 0

Defina o Relógio de Hardware para UTC

Nota: Configurar o RTC para a hora local não é recomendado e pode causar problemas com os ajustes do horário de verão, pelo que é melhor manter o RTC em UTC.

Sincronização do Relógio do Sistema Linux com um Servidor NTP Remoto

NTP significa Protocolo de Tempo de Rede e é um protocolo de internet, utilizado para sincronizar o relógio do sistema entre computadores.

A utilidade timedatectl permite sincronizar automaticamente o relógio do sistema Linux com um grupo remoto de servidores usando NTP.

A maioria das distribuições Linux modernas utiliza diferentes implementações para a sincronização NTP:

  • systemd-timesyncd: Um cliente SNTP (Simple NTP) leve incorporado no systemd, adequado para a maioria das configurações de desktops e servidores individuais.
  • chrony: Uma implementação completa de NTP que pode funcionar como cliente e servidor. Lida melhor com conexões de rede intermitentes e é mais precisa.

A utilizar o systemd-timesyncd

Para iniciar a sincronização automática do tempo com um servidor NTP remoto, digite o seguinte comando no terminal, que irá ativar e iniciar o serviço systemd-timesyncd.

sudo timedatectl set-ntp true

Para desativar a sincronização de horário NTP, digite o seguinte comando no terminal.

sudo timedatectl set-ntp false

Para verificar o estado da sincronização:

timedatectl status

Deverá ver «Relógio do sistema sincronizado: sim» e «Serviço NTP: ativo».

Usar o chrony (Recomendado para Servidores)

Se está a gerir um servidor ou precisa de uma sincronização de tempo mais fiável, chrony é a melhor escolha, e é particularmente bom para:

  • Sistemas que não funcionam continuamente (portáteis, computadores de secretária).
  • Os servidores requerem alta precisão.
  • Sistemas com conectividade de rede intermitente.
  • Ambientes em cluster onde a consistência temporal é crítica.

Primeiro, instale o chrony (se ainda não estiver instalado):

sudo apt install chrony   [On Debian-based systems]
sudo dnf install chrony   [On RHEL-based systems]

Nota: A instalação do chrony desativará automaticamente o systemd-timesyncd para evitar conflitos.

Após a instalação, ative, inicie e verifique o estado da sincronização:

sudo systemctl enable --now chronyd
timedatectl status

Verificar Estado de Sincronização do Relógio do Sistema

Para utilizar os seus próprios servidores NTP em vez dos predefinidos, é necessário editar o ficheiro de configuração do Chrony.

sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources

Adicione os servidores NTP que preferir (pode obter uma lista de servidores NTP no NTP Pool Project).

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst

Reinicie o chrony após as alterações:

sudo systemctl restart chronyd

Notas Importantes Sobre a Sincronização NTP

  • Não pode executar várias implementações de NTP simultaneamente, por isso escolha systemd-timesyncd ou chrony.
  • systemd-timesyncd é uma implementação apenas como cliente e não pode fornecer hora a outros sistemas.
  • chrony pode atuar tanto como cliente de tempo como servidor de tempo para a sua rede local.
  • Para servidores de produção e infraestruturas críticas, é geralmente recomendado usar chrony em vez de systemd-timesyncd.
  • O NTP requer que a porta UDP 123 esteja aberta para conexões de saída.
Resumo

Estes são exemplos muito simples descritos neste tutorial e espero que os ache úteis para configurar vários relógios do sistema Linux e fusos horários.

Para saber mais sobre esta ferramenta, consulte a página de manual do timedatectl.

man timedatectl

Se tiver algo a dizer sobre este artigo, sinta-se à vontade para deixar um comentário para adicionar mais informações.