Gerenciamento de fusos horários e tempo: comandos timedatectl
1. Trabalhando com o tempo no Linux
Por que é importante configurar o tempo corretamente?
Imagina que você tá tentando rastrear um erro no log do sistema, mas o tempo nos logs não bate com o real. Ou, pior ainda, seu servidor numa empresa internacional tá mostrando horários diferentes pros usuários. Configurar o tempo de forma correta não é só uma questão de conveniência: é crucial pro funcionamento dos sistemas, sincronização de arquivos, manutenção da segurança (certificados SSL dependem do tempo) e coordenação de tarefas de trabalho.
No Linux, o tempo pode ser representado de duas formas:
- Tempo do Sistema (System Time) — é o tempo que o sistema operacional usa pras suas tarefas.
- Tempo de Hardware (Hardware Time) — armazenado no nível do hardware (BIOS/UEFI).
Vamos trabalhar com o tempo do sistema usando a ferramenta timedatectl
.
2. Fundamentos do comando timedatectl
timedatectl
é uma ferramenta de linha de comando que oferece uma interface prática para gerenciar o tempo. Ele permite:
- Verificar as configurações atuais de horário e fuso horário;
- Configurar horário do sistema e do hardware;
- Configurar fusos horários;
- Ativar e desativar a sincronização de horário usando NTP (Network Time Protocol).
Verificando o horário atual
Vamos começar pelo básico. Para verificar o horário atual e as configurações, execute o comando:
timedatectl
Exemplo de saída:
Local time: Tue 2023-10-31 12:34:56 MSK
Universal time: Tue 2023-10-31 09:34:56 UTC
RTC time: Tue 2023-10-31 09:34:56
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Explicação dos campos:
- Local time: Horário local (sistema).
- Universal time: Horário no formato UTC (tempo universal coordenado).
- RTC time: Horário do hardware (nível de BIOS/UEFI).
- Time zone: Fuso horário atual.
- System clock synchronized: Se o relógio está sincronizado via NTP.
- NTP service: Se o serviço de sincronização de tempo está ativo.
- RTC in local TZ: Se o horário do hardware corresponde ao fuso horário local.
Configurando e alterando o fuso horário
Às vezes, após uma mudança de localização ou requisitos do projeto, pode ser necessário alterar o fuso horário. Por exemplo, seu servidor estava configurado para Nova York, mas agora atende usuários em Moscou. Os fusos horários podem ser encontrados no diretório /usr/share/zoneinfo
.
Para visualizar os fusos horários disponíveis, execute:
timedatectl list-timezones
A saída será uma lista enorme no formato:
Africa/Abidjan
America/New_York
Asia/Tokyo
Europe/Moscow
Você pode definir um novo fuso horário com o comando:
sudo timedatectl set-timezone Europe/Moscow
Verifique se o fuso horário foi alterado:
timedatectl
Exercício prático
- Descubra o fuso horário atual do seu servidor.
- Altere o fuso horário para UTC.
- Retorne o fuso horário para o local de origem.
3. Configurando o horário manualmente
Embora os servidores modernos geralmente sincronizem o horário via NTP, às vezes é necessário configurar o horário manualmente. Isso é útil se o servidor estiver em uma rede isolada sem acesso à internet.
Primeiro, você pode verificar o horário atual do sistema:
date
Você pode configurar um novo horário usando o comando:
sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS"
Por exemplo, para configurar o horário para 1º de novembro de 2023, 12:00:
sudo timedatectl set-time "2023-11-01 12:00:00"
Agora, verifique o resultado novamente:
timedatectl
Configurando o horário do hardware
O horário do hardware (também conhecido como RTC — Real-Time Clock) é gerenciado no nível do BIOS/UEFI. Se o horário do hardware não estiver sincronizado com o do sistema, isso pode causar problemas durante a reinicialização. Para sincronizar, execute:
sudo hwclock --systohc
Esse comando ajustará o horário do hardware de acordo com o horário do sistema.
Se você precisar fazer o inverso (sincronizar o horário do sistema com o do hardware), use:
sudo hwclock --hctosys
4. Sincronização do tempo via NTP
Sincronizar o tempo via NTP é um jeito automático de manter o horário atualizado utilizando servidores remotos. Na maioria das distribuições modernas do Linux, o NTP já vem ativado por padrão.
Verificando a configuração do NTP
Execute:
timedatectl status
Se o NTP estiver desativado (a linha NTP service mostrar inactive
), ative-o:
sudo timedatectl set-ntp true
Para desativar o NTP, execute:
sudo timedatectl set-ntp false
Se o NTP não estiver funcionando, verifique se os serviços correspondentes estão ativos. Por exemplo, em sistemas com systemd-timesyncd
, certifique-se de que o serviço está ativo:
sudo systemctl status systemd-timesyncd
5. Exercício prático
Desafio
- Configure o fuso horário do seu sistema para UTC.
- Defina manualmente a hora do sistema para 12:00:00, 1º de novembro de 2023.
- Ative a sincronização de tempo via NTP.
Verificação
Depois de concluir a tarefa, certifique-se de que:
- O horário do seu sistema corresponde aos parâmetros definidos.
- O fuso horário foi alterado para UTC.
- O serviço NTP está ativo.
6. Erros comuns e armadilhas
"RTC in local TZ: no" não corresponde ao fuso horário local. Muitos sistemas preferem usar UTC para o tempo do hardware, a fim de evitar confusão ao trabalhar em diferentes fusos horários. Isso não é um erro, mas sim uma preferência.
Erro de acesso ao alterar o tempo. O comando
timedatectl
requer privilégios de superusuário. Certifique-se de que você está usandosudo
.A sincronização com NTP não é ativada. Confira se o serviço NTP está rodando no seu servidor. Por exemplo, para
systemd-timesyncd
, execute:sudo systemctl start systemd-timesyncd
Pra que isso serve na prática?
- Administração de servidores. Configurar o tempo e os fusos horários é importante para o funcionamento correto dos logs, sincronização de dados e agendamento de tarefas.
- Trabalhar com projetos internacionais. Usar UTC como padrão ajuda a evitar confusões ao trabalhar com clientes de diferentes fusos horários.
- Entrevistas de emprego e certificações. Perguntas sobre
timedatectl
e gerenciamento de tempo aparecem em provas e entrevistas para vagas de administrador de sistemas.
Agora você está pronto para gerenciar o tempo no Linux como gerencia seus prazos: com confiança, precisão e sem surpresas desnecessárias.
GO TO FULL VERSION