timedatectl: verificar a sincronização de horário do servidor Linux e configurar o fuso horário
timedatectl é um comando do systemd que mostra e altera o relógio do sistema, o fuso horário e o status da sincronização de horário por NTP de um servidor Linux. Ao verificar a sincronização em um servidor AlmaLinux 9 que usa chrony e em um servidor Debian 12 que usa ntpsec, os dois servidores estavam com o relógio certo, mas a linha NTP service mostrou active em um e n/a no outro.
As saídas abaixo são resultados dos comandos executados nos dois servidores. Apenas nomes de host, endereços IP e números de versão de pacotes foram trocados por valores de exemplo, e comandos que mudam o horário ou o fuso horário não foram executados no servidor em produção.
1️⃣ Como usar o timedatectl e verificar o horário do servidor Linux
Executar timedatectl sem opções dá o mesmo resultado que adicionar status. O horário do relógio do sistema e do relógio de hardware (RTC), o fuso horário e o status da sincronização ficam reunidos em uma tela. Abaixo está o resultado no servidor Debian 12.
timedatectl Local time: Wed 2026-10-28 19:49:57 UTC
Universal time: Wed 2026-10-28 19:49:57 UTC
RTC time: Wed 2026-10-28 19:49:57
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: noO fuso horário do servidor Debian 12 é Etc/UTC, por isso Local time e Universal time mostraram o mesmo horário. O que cada linha indica e os resultados dos dois servidores estão na tabela abaixo.
| Linha da saída | O que mostra | Resultados dos dois servidores e o que verificar |
|---|---|---|
| Local time | Horário atual do relógio do sistema com o fuso horário aplicado | Ao mudar o fuso horário, só esta linha e a saída de date passam para o novo fuso |
| Universal time | O mesmo horário expresso em UTC | Não muda com o fuso horário – no servidor Debian 12 (Etc/UTC) é igual a Local time |
| RTC time | Horário do relógio de hardware (RTC) | Aparece sem fuso horário – é o horário UTC quando RTC in local TZ é no |
| Time zone | Fuso horário configurado, sua abreviação e a diferença em relação ao UTC | Para mudar, use um nome da lista de list-timezones |
| System clock synchronized | Se o kernel considera o relógio sincronizado | yes nos dois servidores – se for no, verifique primeiro o servidor de referência com chronyc tracking ou ntpq -p |
| NTP service | Se o serviço de sincronização que o timedatectl liga e desliga está em execução | active no AlmaLinux 9 (chrony), n/a no Debian 12 (ntpsec) – n/a significa que o timedatectl não conhece o serviço, então verifique com systemctl |
| RTC in local TZ | Se o relógio de hardware fica no horário local (no = UTC) | no nos dois servidores – o comando para passar de yes para UTC é set-local-rtc 0 |
O Linux tem dois relógios. O relógio do sistema é mantido pelo kernel depois da inicialização, e o relógio de hardware é o relógio da placa-mãe que guarda o horário mesmo com o servidor desligado.
O relógio de hardware é lido diretamente com hwclock. O hwclock mostra o horário convertido para o fuso horário atual. No servidor AlmaLinux, a leitura com TZ=UTC antes do comando retornou um horário UTC terminado em +00:00.
TZ=UTC hwclock --show2026-10-28 19:53:33.006788+00:00No servidor Debian 12, acessado com uma conta comum, o mesmo comando terminou sem conseguir acessar o relógio de hardware.
/usr/sbin/hwclock --showhwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.A linha RTC in local TZ é a mesma configuração da terceira linha do arquivo /etc/adjtime. No servidor AlmaLinux, a terceira linha era UTC, o que significa que o relógio de hardware fica em UTC.
cat /etc/adjtime0.0 0 0.0
0
UTCPara ler valores em um script, use show em vez de status. No servidor Debian 12, ele mostra as mesmas informações no formato nome=valor, uma por linha.
timedatectl showTimezone=Etc/UTC
LocalRTC=no
CanNTP=no
NTP=no
NTPSynchronized=yes
TimeUSec=Wed 2026-10-28 19:49:57 UTC
RTCTimeUSec=Wed 2026-10-28 19:49:57 UTCEscolha as propriedades com -p e adicione --value para ficar só com os valores, sem os nomes. Use essa forma para obter apenas o nome do fuso horário.
timedatectl show -p Timezone --valueEtc/UTC🔲 Simulador do comando timedatectl
No simulador abaixo, você pode digitar os comandos para ver o horário, listar os fusos horários, mudar o fuso horário e verificar a sincronização com chronyc.
2️⃣ Status da sincronização de horário do servidor Linux
A linha System clock synchronized mostra se o kernel considera o relógio sincronizado, e a linha NTP service mostra se o serviço de sincronização que o timedatectl pode ligar e desligar está em execução. Com show, os mesmos valores aparecem como NTPSynchronized e NTP, e CanNTP indica se existe um serviço de sincronização que pode ser ligado e desligado.
No servidor AlmaLinux 9 com chrony, os três valores eram yes.
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=yes
NTP=yes
NTPSynchronized=yesNo servidor Debian 12, que acerta o horário com ntpsec, só NTPSynchronized era yes, e CanNTP e NTP eram no. Por isso a linha NTP service apareceu como n/a na tela status desse servidor.
timedatectl show -p CanNTP -p NTP -p NTPSynchronizedCanNTP=no
NTP=no
NTPSynchronized=yesO serviço ntpsec em si estava em execução.
systemctl is-active ntpsecactiveOs únicos serviços de sincronização que o timedatectl conhece são os escritos nos arquivos de lista da pasta ntp-units.d, e os pacotes da distribuição colocam esses arquivos em /usr/lib/systemd/ntp-units.d/ (segundo o manual oficial). O servidor AlmaLinux 9 tinha um arquivo de lista instalado pelo pacote chrony, com uma única linha: chronyd.service.
cat /usr/lib/systemd/ntp-units.d/50-chronyd.listchronyd.servicerpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.listchrony-4.8-10.el9.x86_64O servidor Debian 12 não tinha essa pasta. Como o ntpsec não está na lista, o timedatectl sabia que o relógio estava sincronizado, mas não podia ligar nem desligar esse serviço.
ls /usr/lib/systemd/ntp-units.d/ls: cannot access '/usr/lib/systemd/ntp-units.d/': No such file or directory3️⃣ Verificar a sincronização de horário com chronyc
Em um servidor com chrony, o servidor de horário que o relógio segue é verificado com chronyc. sources mostra os servidores de horário que o chronyd consulta e o estado deles, um por linha.
chronyc sourcesMS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 192.0.2.10 2 10 377 943 +272us[ +275us] +/- 55ms
^- ntp1.example.com 2 10 377 80 -28us[ -32us] +/- 3655us
^- 198.51.100.33 3 10 257 384 -151us[ -156us] +/- 97ms
^- 198.51.100.82 3 10 177 532 +157us[ +149us] +/- 45ms
^* 192.0.2.123 3 4 377 2 -21us[ -23us] +/- 312usO ^ no início indica um servidor de horário, o * como segundo caractere indica o servidor de referência que o relógio segue agora, e - indica um candidato que não entra no cálculo. Poll 4 no servidor de referência significa consulta a cada 16 segundos (2 elevado a 4), e Reach 377 indica que todas as oito últimas respostas foram recebidas.
tracking mostra quanto o relógio do sistema está desviado do horário do servidor de referência.
chronyc trackingReference ID : C000027B (192.0.2.123)
Stratum : 4
Ref time (UTC) : Wed Oct 28 19:50:21 2026
System time : 0.000002422 seconds slow of NTP time
Last offset : -0.000002098 seconds
RMS offset : 0.000000981 seconds
Frequency : 6.348 ppm slow
Residual freq : -0.001 ppm
Skew : 0.017 ppm
Root delay : 0.000300815 seconds
Root dispersion : 0.000150780 seconds
Update interval : 16.3 seconds
Leap status : NormalA linha System time mostra que o relógio do sistema estava 0.000002422 segundo atrás do horário NTP, e Leap status era Normal. Um Update interval de 16.3 segundos é o intervalo entre as duas últimas atualizações do relógio.
Quais servidores são consultados é definido pelas linhas pool e server em /etc/chrony.conf. Deixando só as linhas de configuração, sem comentários e linhas em branco, fica assim.
grep -v "^#" /etc/chrony.conf | grep -v "^$"pool 2.almalinux.pool.ntp.org iburst
sourcedir /run/chrony-dhcp
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
ntsdumpdir /var/lib/chrony
leapsectz right/UTC
logdir /var/log/chrony
server 192.0.2.123 prefer iburst minpoll 4 maxpoll 4A linha pool consulta o pool NTP do AlmaLinux, e prefer na última linha server é uma opção que faz o chronyd escolher esse servidor antes dos outros. makestep 1.0 3 é uma configuração que, nas três primeiras atualizações depois que o chronyd inicia, acerta de uma vez um relógio desviado mais de 1 segundo e, depois disso, ajusta o relógio aos poucos, fazendo-o andar um pouco mais rápido ou mais devagar. rtcsync faz o kernel copiar o horário do sistema para o relógio de hardware a cada 11 minutos (segundo a documentação oficial).
No servidor Debian 12 com ntpsec, as mesmas informações foram verificadas com ntpq -p. O * no início é o servidor de referência, e os três servidores eram consultados a cada 1024 segundos.
ntpq -p remote refid st t when poll reach delay offset jitter
===============================================================================
+203.0.113.43 198.51.100.28 2 u 835 1024 377 184.6893 -0.1018 1.4879
+203.0.113.44 198.51.100.27 2 u 547 1024 377 183.0827 -2.4227 4.0957
*ntp2.example.co 198.51.100.40 2 u 440 1024 377 177.4670 -0.5814 1.70704️⃣ Mudar o fuso horário com timedatectl
Os nomes de fuso horário são vistos com list-timezones. A maioria tem a forma Continente/Cidade, um por linha, e os dois servidores tinham 598.
timedatectl list-timezones | head -5Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmaratimedatectl list-timezones | wc -l598A lista é longa, então filtre com grep ao procurar um nome.
timedatectl list-timezones | grep -i new_yorkAmerica/New_YorkO fuso horário é alterado escrevendo um nome da lista depois de set-timezone. Esse comando troca o link /etc/localtime pelo novo arquivo de fuso horário, por isso, em uma conta comum, ele é executado com sudo.
sudo timedatectl set-timezone America/New_YorkVerifique com ls -l se /etc/localtime é um link para um arquivo de fuso horário.
ls -l /etc/localtimelrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTCUm nome que não está na lista foi recusado na hora, antes de mudar o fuso horário.
timedatectl set-timezone Mars/OlympusFailed to set time zone: Invalid or not installed time zone 'Mars/Olympus'Mudar o fuso horário não altera o horário do relógio do sistema; só Local time e a saída do comando date aparecem no novo fuso. Em um servidor com o relógio de hardware em UTC, o relógio de hardware também não muda (segundo o manual oficial).
5️⃣ Ativar o NTP e definir o horário manualmente com timedatectl
set-ntp true inicia o primeiro serviço da lista de serviços de sincronização e o habilita na inicialização. false para os serviços da lista e os desabilita na inicialização (segundo o manual oficial).
sudo timedatectl set-ntp trueNo servidor Debian 12, sem arquivo de lista, o comando terminou com NTP not supported mesmo com false, o valor atual. Um serviço que não está na lista, como o ntpsec, é iniciado e parado diretamente com systemctl.
timedatectl set-ntp falseFailed to set ntp: NTP not supportedPara definir o horário manualmente, escreva a data e a hora depois de set-time. Esse comando acerta o relógio de hardware junto com o relógio do sistema.
sudo timedatectl set-time '2026-10-28 20:00:00'No servidor Debian 12, informar um valor em formato errado terminou com erro, sem mudar o horário.
timedatectl set-time badFailed to parse time specification 'bad': Invalid argumentEm um servidor com chrony, para acertar de uma vez um relógio muito desviado, use chronyc makestep.
sudo chronyc makestepmakestep descarta a diferença restante que estava sendo corrigida aos poucos e faz o relógio do sistema saltar esse valor na hora. A documentação oficial avisa que uma mudança brusca de horário pode afetar alguns programas, então use só quando o relógio estiver desviado demais para ser corrigido devagar.
🔢 FAQ & conteúdo recomendado
Configurações · locale
[Linux] Comando localectl
O comando localectl mostra e altera o idioma do sistema (locale) e o layout do teclado.
Informações do sistema
Comando uptime do Linux (tempo de atividade do servidor & carga média de 1, 5 e 15 minutos)
O comando uptime mostra há quanto tempo o servidor está ligado e a carga média de 1, 5 e 15 minutos.
Gerenciar serviços
Iniciar, parar e reiniciar o Apache: comandos e a diferença do graceful
Comandos para iniciar, parar e reiniciar o Apache e verificar o status do serviço em sistemas da família Red Hat e no Ubuntu.
ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.