timedatectl: verificar a sincronização de horário do servidor Linux e configurar o fuso horário

Ambiente de testeFamília RHELAlmaLinux 9.8systemd 252 · chrony 4.8conta rootDebian 12 conta comumVerificado em 2026-10-29
Comandos de informações · configurações do sistematimedatectlLocalização/usr/bin/timedatectl

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: no

O 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ídaO que mostraResultados dos dois servidores e o que verificar
Local timeHorário atual do relógio do sistema com o fuso horário aplicadoAo mudar o fuso horário, só esta linha e a saída de date passam para o novo fuso
Universal timeO mesmo horário expresso em UTCNão muda com o fuso horário – no servidor Debian 12 (Etc/UTC) é igual a Local time
RTC timeHorário do relógio de hardware (RTC)Aparece sem fuso horário – é o horário UTC quando RTC in local TZ é no
Time zoneFuso horário configurado, sua abreviação e a diferença em relação ao UTCPara mudar, use um nome da lista de list-timezones
System clock synchronizedSe o kernel considera o relógio sincronizadoyes nos dois servidores – se for no, verifique primeiro o servidor de referência com chronyc tracking ou ntpq -p
NTP serviceSe o serviço de sincronização que o timedatectl liga e desliga está em execuçãoactive 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 TZSe 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 --show
2026-10-28 19:53:33.006788+00:00

No servidor Debian 12, acessado com uma conta comum, o mesmo comando terminou sem conseguir acessar o relógio de hardware.

/usr/sbin/hwclock --show
hwclock: 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/adjtime
0.0 0 0.0
0
UTC

Para 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 show
Timezone=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 UTC

Escolha 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 --value
Etc/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.

Simulador do comando timedatectlsystemd 252 · chrony 4.8
[root@server work]#
Funciona só no navegador. O fuso horário alterado volta ao início (Etc/UTC) ao recarregar, e ↑↓ traz de volta os comandos anteriores.

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 NTPSynchronized
CanNTP=yes
NTP=yes
NTPSynchronized=yes

No 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 NTPSynchronized
CanNTP=no
NTP=no
NTPSynchronized=yes

O serviço ntpsec em si estava em execução.

systemctl is-active ntpsec
active

Os ú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.list
chronyd.service
rpm -qf /usr/lib/systemd/ntp-units.d/50-chronyd.list
chrony-4.8-10.el9.x86_64

O 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 directory
🖥️ timedatectlstatus, show, set-ntp
ntp-units.d/*.listLista de serviços de sincronização que o timedatectl liga e desliga
chronyd.serviceNa lista → NTP service: active
ntpsec.serviceFora da lista → NTP service: n/a

3️⃣ 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 sources
MS 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] +/-  312us

O ^ 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 tracking
Reference 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     : Normal

A 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 4

A 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.7070

4️⃣ 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 -5
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
timedatectl list-timezones | wc -l
598

A lista é longa, então filtre com grep ao procurar um nome.

timedatectl list-timezones | grep -i new_york
America/New_York

O 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_York

Verifique com ls -l se /etc/localtime é um link para um arquivo de fuso horário.

ls -l /etc/localtime
lrwxrwxrwx 1 root root 27 Sep 24 12:52 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

Um nome que não está na lista foi recusado na hora, antes de mudar o fuso horário.

timedatectl set-timezone Mars/Olympus
Failed 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 true

No 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 false
Failed to set ntp: NTP not supported

Para 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 bad
Failed to parse time specification 'bad': Invalid argument

Em um servidor com chrony, para acertar de uma vez um relógio muito desviado, use chronyc makestep.

sudo chronyc makestep

makestep 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

Serviços NTP como chrony e ntpsec mantêm o relógio sincronizado o tempo todo, então quase nunca é preciso rodar rdate pelo cron. No servidor AlmaLinux 9 verificado, o rdate não estava instalado e também não aparecia na lista de pacotes que podem ser instalados. O repositório do servidor Debian 12 tinha o pacote rdate 1.11, mas ele não estava instalado.

timesync-status é um comando exclusivo do systemd-timesyncd. Tanto no servidor AlmaLinux 9 com chrony quanto no servidor Debian 12 com ntpsec, ele terminou com o erro Failed to query server. Nesses servidores, verifique o status da sincronização com chronyc tracking ou ntpq -p.

O manual oficial explica que manter o relógio de hardware no horário local pode causar problemas quando o fuso horário muda ou quando entra ou sai o horário de verão. Por isso recomenda deixá-lo em UTC sempre que possível, e o comando para passar para UTC é sudo timedatectl set-local-rtc 0. Os dois servidores verificados estavam em no (UTC).

ℹ️ 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.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 1   +   2   =