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
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
3. Para ver todos os fusos horários disponíveis, execute o comando abaixo:
timedatectl list-timezones
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.*"
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
É sempre recomendado usar e definir a hora universal coordenada, UTC.
sudo timedatectl set-timezone UTC
timedatectl status
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
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'
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
Defina o relógio do seu hardware para a hora universal coordenada (UTC):
sudo timedatectl set-local-rtc 0
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
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.










