Linux / Comando timedatectl: consultar fuso e sincronização da hora
timedatectl consulta a hora, o fuso horário, o relógio de hardware e o estado de sincronização em sistemas com os serviços correspondentes do systemd disponíveis. Ele também permite alterar essas configurações, mas mudar o fuso e ajustar o instante do relógio são operações diferentes.
O relógio do sistema fornece a hora usada pelos programas. O RTC, sigla de Real-Time Clock, é o relógio de hardware, que também pode ser emulado em ambientes virtuais. A hora local é uma representação do instante no fuso escolhido; UTC, Tempo Universal Coordenado, fornece uma referência comum. A sincronização pela rede busca manter o relógio alinhado com uma referência de tempo.
Sintaxe e requisitos
timedatectl [opções] [comando] [argumento]
Os colchetes descrevem a sintaxe e não devem ser digitados. Confira timedatectl --version, timedatectl --help e man timedatectl na instalação utilizada. Os comandos deste guia operam no sistema onde o terminal está aberto; em uma conexão SSH, esse sistema é a máquina remota.
Timedatectl é um cliente de systemd-timedated, serviço acessado pelo barramento de mensagens D-Bus. A presença do executável não garante acesso ao serviço. Contêineres mínimos ou ambientes sem essa infraestrutura podem não oferecer as consultas e alterações locais; sudo não cria um serviço ou barramento ausente.
Consultar a hora e o estado atual
timedatectl status
Status é a ação padrão quando nenhum comando é informado. Leia em conjunto a hora local, a hora UTC, o fuso, a hora do RTC e os indicadores de sincronização disponíveis. Os rótulos e campos variam conforme a versão e o ambiente; não presuma que uma captura de outro servidor será idêntica à sua saída.
Um serviço de sincronização ativo não é, por si só, confirmação de sincronização concluída. NTP significa Network Time Protocol, protocolo de tempo pela rede. O programa e a política responsáveis por essa função podem ser diferentes entre distribuições. Um servidor pode estar com o serviço habilitado enquanto ainda não obteve uma referência de tempo.
Antes de qualquer alteração, registre o fuso atual e confira o modo do RTC. Para guardar somente o nome do fuso em versões compatíveis, consulte timedatectl show -p Timezone --value. Mantenha o valor completo, pois ele será necessário se quiser voltar à configuração anterior.
Listar e escolher um fuso horário
timedatectl list-timezones
A listagem apresenta os identificadores disponíveis, um por linha. Escolha exatamente um nome existente, respeitando a grafia e as maiúsculas. Asia/Seoul é o exemplo deste guia; não é uma indicação de que todos os servidores devam usar esse fuso. Em ambientes que padronizam UTC, mantenha a política definida para os serviços e para a leitura dos logs.
Se a saída abrir em um paginador, q normalmente retorna ao terminal; timedatectl --no-pager list-timezones solicita a listagem sem paginador. Listar fusos não modifica a configuração.
Alterar o fuso e conferir a aplicação
- Confirme a máquina administrada, o fuso anterior e as dependências de logs e tarefas agendadas que interpretam hora local.
- Escolha um identificador presente na listagem. O exemplo abaixo solicita o fuso Asia/Seoul e exige autorização para mudar a configuração do sistema:
sudo timedatectl set-timezone Asia/Seoul
Essa operação altera a configuração global de fuso, normalmente por meio do link /etc/localtime. Ela muda a representação local do instante e não é um comando para adiantar ou atrasar o relógio do sistema. Há uma condição importante: se o RTC estiver configurado para manter hora local, o comando também ajustará o RTC de acordo com o novo fuso.
A documentação de localtime descreve a configuração global e sua possível substituição por TZ em um programa. Se um processo tiver seu próprio fuso configurado, a apresentação desse processo pode não acompanhar a alteração global como você esperava.
- Leia qualquer mensagem de erro e confira o status de saída imediatamente após a alteração, por exemplo com
echo $?no Bash. Ausência de texto não é prova suficiente de sucesso. - Execute novamente
timedatectl statuse confira o identificador do fuso e a hora local. Não espere que a alteração de fuso transforme, por si só, um relógio não sincronizado em sincronizado.
Para comparar apenas a apresentação em UTC, sem mudar a configuração global, date -u é uma consulta apropriada; veja a explicação de formatos e UTC no comando date. Essa consulta também não corrige uma diferença real entre o relógio e a referência de tempo.
Consultar propriedades de fuso e sincronização
timedatectl show -p Timezone -p NTPSynchronized
Show oferece propriedades para leitura por programas, evitando analisar a apresentação de status. O exemplo abaixo ilustra dois valores possíveis; não é uma saída observada no ambiente de verificação deste guia nem uma garantia de ordem dos campos:
Timezone=Asia/Seoul
NTPSynchronized=yes
Timezone identifica o fuso configurado. NTPSynchronized informa se o kernel relata o relógio como sincronizado. Um valor yes não é um diagnóstico completo de todos os servidores de tempo, da qualidade da rede ou da precisão exigida por uma aplicação. O valor no, por sua vez, não identifica sozinho a causa do problema.
Para separar disponibilidade, habilitação e sincronização, consulte timedatectl show -p CanNTP -p NTP -p NTPSynchronized. CanNTP indica se há um serviço de sincronização disponível, NTP se o serviço está habilitado, e NTPSynchronized o estado relatado pelo kernel. Essas definições estão na interface oficial org.freedesktop.timedate1.
Se uma propriedade estiver ausente, confira a versão, a mensagem de erro e o suporte do serviço; propriedades vazias podem ser omitidas por padrão em show. Não invente o valor ausente. Compare o estado informado com o diagnóstico do programa de sincronização realmente utilizado pela distribuição.
Comandos principais e alcance de cada operação
| Comando | Finalidade |
|---|---|
status |
Consulta a hora, o RTC e os indicadores disponíveis de configuração e sincronização. |
list-timezones |
Lista identificadores de fuso disponíveis no sistema. |
set-timezone Área/Cidade |
Altera o fuso global. Se o RTC usa hora local, também o atualiza. |
set-ntp true|false |
Ativa ou desativa serviços conhecidos de sincronização, conforme a disponibilidade e a integração local. |
show |
Consulta propriedades em formato adequado para processamento por programas. |
No comando set-ntp, true e false são alternativas, não um texto a ser copiado com o caractere |. Segundo o manual de timedatectl, true habilita e inicia o primeiro serviço de sincronização existente na lista conhecida; false desabilita e interrompe os serviços conhecidos. Isso pode mudar serviços em execução e não deve ser usado apenas para consultar o estado.
Investigar a sincronização sem confundir os serviços
Se o sistema usar systemd-timesyncd, timedatectl timesync-status oferece o diagnóstico desse serviço. Esse comando não é uma interface universal para qualquer implementação de NTP. Um sistema que usa outro programa precisa ser conferido com as ferramentas e os registros correspondentes.
A documentação de systemd-timesyncd explica que ele sincroniza o relógio com servidores remotos e pode ajustar a hora de modo gradual ou por salto, conforme a diferença. Habilitar um serviço não demonstra que uma referência precisa já tenha sido alcançada; verifique seu estado, a configuração dos servidores e a conectividade relevante antes de concluir a causa de uma falha.
Não use set-time como correção automática para qualquer indicação de no. Essa operação ajusta o relógio do sistema e também atualiza o RTC, podendo interferir no mecanismo de sincronização em uso. Tampouco altere o modo local/UTC do RTC para corrigir somente a aparência da hora. O manual recomenda manter o RTC em UTC quando possível, pois o modo local traz dificuldades com mudanças de fuso e horário de verão.
Restaurar o fuso e limites da verificação
Para voltar ao fuso anterior, execute sudo timedatectl set-timezone 'Fuso/Anterior', substituindo Fuso/Anterior pelo identificador real anotado antes da mudança. Não digite esse marcador literalmente. Consulte status novamente e confira o fuso e o modo do RTC. Restaurar o fuso não desfaz alterações independentes que tenham sido feitas em horários agendados, serviços ou na própria hora do sistema.
Se houver erro de autorização, nome de fuso inválido ou falha de acesso ao barramento, investigue a condição indicada. Não trate esses casos diferentes como ausência de sincronização nem tente contornar a política de administração do ambiente.
No ambiente disponível, Bash 5.3.9 do Git para Windows, timedatectl não foi encontrado: --version e --help retornaram 127. Os quatro blocos de comandos passaram apenas pela análise de sintaxe do Bash. Não houve execução de sudo, acesso ao systemd, mudança de fuso, RTC, relógio ou serviço de sincronização; os efeitos e os valores ilustrativos foram conferidos nos documentos oficiais, sem execução nativa do Linux.
Pergunta frequente
Mudar apenas o fuso também muda o instante real?
Set-timezone altera como a hora é representada localmente, sem ser uma operação de ajuste do instante do relógio do sistema. Se o RTC estiver em modo de hora local, ele também será atualizado para o novo fuso. Corrigir o relógio ou configurar sua sincronização são operações separadas e exigem uma verificação própria.




