Gerenciamento de Horario do Sistema - date, timedatectl, NTP, chrony
O Que Voce Vai Conquistar
- Mostrar o horario atual com
datee alternar entre formatacao e definicao - Explicar a relacao entre o relogio do sistema e o relogio de hardware (RTC) usando
hwclock - Gerenciar fuso horario e sincronizacao de tempo juntos com
timedatectl - Configurar sincronizacao de tempo com NTP (
ntpd/chrony) e verificar seu estado - Responder as perguntas frequentes do exame "UTC vs hora local" e "definicao manual vs conflito NTP" com raciocinio
Este e o nucleo do objetivo 108.1 do LPIC-1 "Manter o horario do sistema". Correlacao de logs, disparo preciso do cron e validacao de certificados TLS dependem de um horario correto.
Em Qual Camada o Horario do Sistema e Gerenciado?
O horario do Linux e gerenciado em duas camadas: o relogio do sistema (um relogio de software mantido pelo kernel) e o relogio de hardware (o RTC na placa-mae). A sincronizacao diaria tem como alvo o relogio do sistema, enquanto o RTC fornece o valor inicial no boot.
| Relogio | Substancia | Comando | Quando desligado |
|---|---|---|---|
| Relogio do sistema | Relogio de software dentro do kernel | date / timedatectl |
Perdido |
| Relogio de hardware (RTC) | Chip com bateria na placa-mae | hwclock |
Mantido |
No boot, o horario e lido do RTC para o relogio do sistema (hctosys), e durante a operacao o NTP corrige o relogio do sistema. Gravar o relogio do sistema de volta no RTC com hwclock --systohc mantem o valor inicial do proximo boot preciso.
Em sistemas systemd, a leitura e escrita do RTC no boot sao tratadas automaticamente, entao operacoes manuais com hwclock geralmente sao desnecessarias. Quando a sincronizacao NTP esta habilitada, o timedatectl atualiza o RTC periodicamente.
Mostrando e Definindo Horario com date
date mostra e define o horario atual do sistema. Especificadores de formato comecando com + permitem formatar a saida livremente. A definicao requer root, mas evite definicao manual enquanto a sincronizacao NTP estiver ativa.
Mostrando o horario e especificadores de formato
date date '+%Y-%m-%d %H:%M:%S' date '+%Y%m%d' date -u
Sat May 30 14:23:07 JST 2026 2026-05-30 14:23:07 20260530 Sat May 30 05:23:07 UTC 2026
Os principais especificadores de formato sao %Y (ano com 4 digitos), %m (mes), %d (dia), %H (hora, 24h), %M (minuto) e %S (segundo). A flag -u mostra o horario em UTC. date '+%Y%m%d' e classico para gerar nomes de arquivos de backup.
Definindo o horario manualmente
sudo date -s '2026-05-30 14:30:00'
Sat May 30 14:30:00 JST 2026
-s (--set) define o horario diretamente. No entanto, em ambientes onde a sincronizacao NTP esta habilitada, a definicao e sobrescrita pelo NTP quase imediatamente. Para definir manualmente, pare a sincronizacao primeiro (veja abaixo).
Operando o Relogio de Hardware com hwclock
hwclock le e grava o RTC. --systohc copia o horario do sistema para o RTC, e --hctosys copia o RTC para o horario do sistema. Se o RTC e mantido em UTC ou hora local e um ponto frequente no exame.
Lendo o RTC e direcao de sincronizacao
sudo hwclock --show sudo hwclock --systohc sudo hwclock --hctosys
2026-05-30 14:31:05.123456+09:00
--show (-r) exibe o valor atual do RTC. Memorize a direcao pelo nome.
| Opcao | Direcao | Finalidade |
|---|---|---|
--systohc (-w) |
Sistema -> RTC | Salvar horario correto do sistema no RTC |
--hctosys (-s) |
RTC -> Sistema | Inicializar horario do sistema a partir do RTC |
UTC vs hora local
sudo hwclock --systohc --utc sudo hwclock --systohc --localtime
Com --utc o RTC e tratado como UTC; com --localtime e tratado como hora local. UTC e fortemente recomendado para sistemas somente Linux. Manter o RTC em hora local tende a causar correcoes duplas e desvio em mudancas de horario de verao ou mudancas de fuso horario.
Em dual boot com Windows, o Windows trata o RTC como hora local por padrao, entao ou ajuste o lado Linux com --localtime ou mude o Windows para usar UTC. Misturar os dois faz o horario desviar a cada boot.
Gerenciando Horario e Fuso Horario com timedatectl
timedatectl e o comando padrao em sistemas systemd, gerenciando horario, fuso horario, sincronizacao de tempo e modo RTC em um so lugar. Executar timedatectl sem argumento retorna a mesma saida que status.
Verificando o estado atual
timedatectl status
Local time: Sat 2026-05-30 14:35:12 JST
Universal time: Sat 2026-05-30 05:35:12 UTC
RTC time: Sat 2026-05-30 05:35:11
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
System clock synchronized e NTP service mostram o estado de sincronizacao. RTC in local TZ: no indica que o RTC e mantido em UTC (o estado recomendado).
Definindo o fuso horario
timedatectl list-timezones | grep Tokyo sudo timedatectl set-timezone Asia/Tokyo
Asia/Tokyo
list-timezones lista os fusos horarios disponiveis, e set-timezone define um. Isso atualiza o link simbolico /etc/localtime (veja abaixo).
Habilitando sincronizacao de tempo
sudo timedatectl set-ntp true
set-ntp true habilita e inicia o primeiro servico de sincronizacao de rede existente (tipicamente systemd-timesyncd em sistemas systemd). Use false para desabilitar. Para definir o horario manualmente, primeiro pare a sincronizacao com set-ntp false.
Mantendo o RTC em UTC
sudo timedatectl set-local-rtc 0
set-local-rtc 0 mantem o RTC em UTC (recomendado). Definir 1 o torna hora local, mas a documentacao oficial afirma que "manter o RTC no fuso horario local nao e totalmente suportado e criara diversos problemas com mudancas de fuso horario e ajustes de horario de verao. Se possivel, mantenha o RTC em modo UTC."
Quais Arquivos Determinam o Fuso Horario?
O fuso horario do sistema e determinado por qual arquivo sob /usr/share/zoneinfo/ e apontado por /etc/localtime. Sistemas baseados em Debian adicionalmente mantem o nome do fuso como texto em /etc/timezone.
| Caminho | Funcao |
|---|---|
/usr/share/zoneinfo/ |
Armazenamento de todas as definicoes de fuso (binario) |
/etc/localtime |
Link simbolico apontando para o fuso do sistema |
/etc/timezone |
Nome do fuso como texto (familia Debian / Ubuntu) |
ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 May 30 14:00 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
Usar timedatectl set-timezone mantem este link e /etc/timezone consistentes automaticamente. E mais seguro do que relinkar manualmente. Uma alteracao temporaria por usuario tambem e possivel com a variavel de ambiente TZ.
Sincronizando Horario com NTP
NTP (Network Time Protocol) e um protocolo que busca horario preciso de servidores upstream para corrigir o relogio do sistema. Ha tres implementacoes: o classico ntpd, seu sucessor chrony e o leve systemd-timesyncd.
Diferencas entre as tres implementacoes
| Implementacao | Arquivo de configuracao | Comando de verificacao | Caracteristicas |
|---|---|---|---|
ntpd (referencia ntp.org) |
/etc/ntp.conf |
ntpq -p |
Longa historia, documentacao abundante |
chrony (chronyd) |
/etc/chrony.conf |
chronyc sources / chronyc tracking |
Forte com conexoes intermitentes e VMs |
systemd-timesyncd |
/etc/systemd/timesyncd.conf |
timedatectl status |
Apenas cliente SNTP, leve |
Executar multiplos daemons de sincronizacao no mesmo host gera conflitos, entao habilite apenas um.
Verificando o ntpd
ntpq -p
remote refid st t when poll reach delay offset jitter ============================================================================== *ntp1.example.com 133.243.x.x 2 u 45 64 377 8.123 0.512 0.087 +ntp2.example.com 133.243.x.x 2 u 38 64 377 12.456 -0.231 0.142
ntpq -p (peers) lista os servidores pares. Um * inicial marca o servidor atualmente em sincronizacao, + marca um candidato a sincronizacao. reach e a alcancabilidade (octal; 377 significa que as ultimas 8 consultas tiveram sucesso), e offset e a diferenca de tempo em relacao ao local (milissegundos). Os servidores sao especificados com linhas server em /etc/ntp.conf.
Verificando o chrony
chronyc sources chronyc tracking
MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp1.example.com 2 6 377 23 +12us[ +18us] +/- 14ms ^- ntp2.example.com 2 6 377 21 -103us[ -103us] +/- 21ms
Em chronyc sources, a coluna M e o modo da fonte (^ e um servidor), e a coluna S e o estado de selecao (* significa em sincronizacao). Stratum e o numero de saltos a partir de um relogio de referencia, e Reach e o registrador de alcancabilidade. chronyc tracking mostra detalhes da qualidade de sincronizacao como Reference ID, Stratum, System time (o offset atual entre o relogio NTP e o relogio do sistema), Last offset e RMS offset. Os servidores sao especificados com linhas server / pool em /etc/chrony.conf.
Para o exame, memorize o mapeamento: "chronyc sources para fontes de tempo, chronyc tracking para detalhes da sincronizacao" e "ntpq -p lista os peers do ntpd". Os nomes dos arquivos de configuracao (/etc/ntp.conf e /etc/chrony.conf) tambem sao frequentemente cobrados.
Erros Comuns e Correcoes
O gerenciamento de horario e propenso a conflitos entre configuracoes e a confusao entre UTC e hora local. Aqui estao casos tipicos cobrados no exame e vistos na pratica.
- Confundir UTC e hora local: Gravar com
--localtimeenquanto o RTC deveria estar em UTC faz o horario desviar pelo offset do fuso horario (3 horas no horario de Brasilia) a cada boot. Padronize em UTC para sistemas somente Linux. - Conflito entre NTP e definicao manual: Definir o horario manualmente com
date -souhwclock --systohcenquanto a sincronizacao NTP esta ativa e sobrescrito pelo NTP imediatamente. Para definir manualmente, primeiro pare a sincronizacao comtimedatectl set-ntp false(ou pare o daemon relevante). - Executar multiplos daemons de sincronizacao simultaneamente: Iniciar tanto
ntpdquantochronydfaz ambos disputarem a mesma porta e funcao, desestabilizando a sincronizacao. Habilite apenas um. - Mudanca de fuso horario sem efeito: Editar
/etc/localtimemanualmente mas deixa-lo inconsistente com/etc/timezone(familia Debian). Usartimedatectl set-timezonemantem ambos consistentes. - Mudanca de fuso nao afeta processos em execucao: Mesmo apos mudar o fuso horario, daemons ja iniciados (cron, aplicacoes) podem manter o fuso antigo. Reinicie os servicos apos a mudanca.
Solucao de Problemas
Problemas de sincronizacao de tempo sao mais rapidos de isolar na ordem "sintoma -> causa -> verificacao -> correcao".
Sintoma: timedatectl nao sincroniza (System clock synchronized: no)
Causa: O servico de sincronizacao de tempo esta desabilitado, ou o servidor NTP esta inacessivel
Verificacao:
timedatectl status sudo systemctl status systemd-timesyncd
Correcao: Habilite a sincronizacao com sudo timedatectl set-ntp true. Se ainda mostrar no, verifique se o firewall nao esta bloqueando a porta UDP 123 e se as linhas server no arquivo de configuracao estao corretas.
Sintoma: Horario definido com date -s reverte imediatamente
Causa: A sincronizacao NTP esta habilitada e sobrescreve a definicao manual instantaneamente
Verificacao:
timedatectl status
Correcao: Se System clock synchronized: yes, este e o comportamento normal. Para definir o horario intencionalmente, pare a sincronizacao com sudo timedatectl set-ntp false primeiro, depois execute date -s.
Sintoma: Horario desvia pelo offset do fuso horario a cada boot
Causa: O modo do RTC (UTC / local) e a interpretacao do sistema discordam
Verificacao:
timedatectl status sudo hwclock --show
Correcao: Para sistemas somente Linux, padronize o RTC em UTC com sudo timedatectl set-local-rtc 0. Para dual boot com Windows, alinhe ambos os lados em um modo.
Lista de Verificacao
- [ ] Verificou horario, fuso e estado de sincronizacao com
timedatectl status - [ ] Definiu o fuso horario correto com
timedatectl set-timezone - [ ] Habilitou a sincronizacao de tempo com
timedatectl set-ntp true - [ ] Verificou a alcancabilidade das fontes de tempo com
chronyc sources/ntpq -p - [ ] Confirmou que o RTC e mantido em UTC (
set-local-rtc 0)
Resumo
| Cenario | Comando | Finalidade |
|---|---|---|
| Mostrar horario | date '+%Y-%m-%d' |
Exibir com formato personalizado |
| Verificar estado | timedatectl status |
Verificar horario, fuso e sincronizacao |
| Definir fuso | timedatectl set-timezone |
Alterar o fuso horario |
| Controlar sincronizacao | timedatectl set-ntp true |
Habilitar sincronizacao NTP |
| Gravar no RTC | hwclock --systohc |
Salvar horario do sistema no RTC |
| Verificar chrony | chronyc sources / tracking |
Fontes de tempo e qualidade da sincronizacao |
| Verificar ntpd | ntpq -p |
Listar servidores pares |
O horario do sistema e a base dos logs, cron e validacao de certificados. Apos dominar o 108.1, combine com o gerenciamento de logs dependente de tempo e o agendamento de tarefas para completar seu conhecimento operacional.
Proximas Leituras
- Hub de Aprendizado LPIC-1
- Logs do Sistema: journald e rsyslog
- Agendamento de Tarefas: cron e at
- Objetivos do Exame LPIC-1 v5.0