Como usar o comando timedatectl no Linux

Vários relógios de parede amontoados, todos mostrando tempos diferentes.
POR666/Shutterstock.com

O comando do Linux timedatectlpermite definir sua hora, data e fuso horário para o relógio do sistema e o relógio em tempo real. Reserve um momento e mostraremos como tudo funciona.

É tudo relativo

O tratamento do tempo pelo seu computador é uma daquelas coisas que você pode esperar que sejam bastante diretas. Pelo menos, até você começar a olhar para ele.

O relógio do sistema Linux conta o número de segundos desde a época do Unix . Isso foi às 00:00:00 de 1º de janeiro de 1970, UTC. UTC significa tempo universal coordenado, mas geralmente é dito como tempo universal coordenado ou apenas tempo universal. Este é o padrão de tempo pelo qual o mundo administra e regula o tempo. Diferentes fusos horários aplicam um deslocamento ao UTC para obter sua hora local. Alguns fusos horários estão à frente do UTC e outros estão atrás dele.

O relógio do sistema em computadores Linux é baseado em software. Obviamente, ele não pode ser executado quando o computador está desligado. Outro relógio, um relógio em tempo real baseado em hardware com bateria, é capaz de funcionar quando o computador está desligado. Sua finalidade é informar ao relógio do sistema que horas são sempre que o Linux inicializar. A menos que o acesso a um servidor de protocolo de tempo de rede (NTP) seja possível.

Os servidores NTP são servidores que fornecem informações de tempo precisas aos computadores que as solicitam. Se você inicializar seu computador ou laptop e não houver acesso à Internet — ou se ele não tiver sido configurado para usar servidores NTP — o relógio em tempo real será usado para preparar o relógio do sistema em vez de um servidor NTP.

Recomendado:  você fará essencialmente as mesmas alterações que acabou de fazer na seção anterior

O relógio do sistema está sempre em UTC. Qualquer aplicativo que precise adquirir a hora local precisa:

  • Acesse o relógio do sistema e obtenha UTC
  • Saiba em que fuso horário está e aplique o deslocamento correto
  • Leve em consideração se o horário de verão está em vigor

A conversão de UTC para hora local é feita pelo aplicativo, não pelo relógio do sistema. Ou, mais precisamente, a conversão é realizada pelas bibliotecas de data e hora às quais o aplicativo está vinculado. É por isso que é vital que seu computador saiba qual é o fuso horário, qual é o horário UTC, quantos segundos se passaram desde a época do Unix e se o horário de verão está em vigor.

Em distribuições Linux baseadas em systemd, usamos o timedatectlcomando para ver ou alterar essas configurações e valores.

Introdução ao timedatectl

Para ver os dados atuais e a hora e outros valores, use o timedatectlcomando com o statusoperador.

status timedatectl

A saída do comando timedatectl usando o operador de status

Na verdade, você pode descartar o status e ainda obterá a mesma saída.

timedatectl

A saída do comando timedatectl sem operador

Ambos os conjuntos de saída mostram:

  • Hora Local : A hora que o computador pensa que é, de acordo com seu fuso horário.
  • Hora Universal : A hora UTC.
  • Hora RTC : A hora que o relógio em tempo real está usando. Normalmente, isso é UTC.
  • Fuso horário : Informação sobre o fuso horário configurado.
  • Relógio do sistema sincronizado : se o relógio do sistema está sincronizado com um servidor NTP.
  • Serviço NTP : se o serviço NTP do computador está ativo.
  • RTC em TZ local : se o relógio em tempo real está usando a hora local em vez de UTC.

Você pode ver quantos fusos horários o timedatectlcomando suporta digitando:

timedatectl list-timezones | wc -l

Contando os fusos horários timedatectl

Isso é muito mais do que há  fusos horários no mundo . Se canalizarmos a saída e grepfiltrarmos as entradas para “America” e canalizarmos paraless , podemos percorrer uma lista mais gerenciável.

timedatectl list-timezones | grep "América/" | menos

Filtrando fusos horários americanos com grep

Ao revisar essa lista, você verá que “América” é considerada como tendo seu significado mais amplo possível. A segunda coisa que você notará é que a maioria das entradas não são fusos horários reais.

Recomendado:  O que o Amazon Dash Wand pode (e não pode) fazer

Lista de fusos horários "americanos" em menos

Configurando o fuso horário

Se você examinar a lista não filtrada de fusos horários suportados por timedatectlvocê verá lugares e fusos horários. Para definir um fuso horário, você pode especificá-lo por nome como EST ou GMT, ou pode escolher um local no mesmo fuso horário que você, como Londres ou Nova York.

Redefinir seu fuso horário não é algo que você fará com frequência, mas talvez você tenha se mudado de casa ou esteja trabalhando fora por um tempo e queira localizar seu laptop. Se você precisar redefinir seu fuso horário, escolha um local no fuso horário que deseja usar.

Vamos definir este computador para a hora da montanha, que é o mesmo fuso horário de Edmonton. Veremos então como as configurações mudaram.

timedatectl set-timezone "América/Edmonton"
timedatectl

Novo fuso horário e configurações de horário

Nosso fuso horário foi alterado, nosso horário local foi alterado e nosso deslocamento do UTC aumentou.

Configurando manualmente a hora e a data

Embora seja possível definir manualmente a hora e a data, geralmente você não precisará. O uso de sincronização de horário e NTP é a maneira preferida de manter a hora e a data do computador precisas. Se você tentar alterar a data ou hora de seus computadores, provavelmente receberá um erro, informando que a sincronização de horário está em uso.

timedatectl set-time 10:30:00

Mensagem de erro porque a sincronização de horário está em vigor

Use este comando para desligar o serviço de sincronização de tempo:

sudo systemctl stop systemd-timesyncd.service

Você pode definir a hora, a data ou ambas usando o timedatectloperador set-time. as datas estão na ordem ano-mês-dia YYY-MM-DD e a hora está na ordem horas-minutos-segundos HH:MM:SS. Vamos definir a hora e a data com este comando:

timedatectl set-time "2022-01-30 10:30:00"

Em seguida, verificaremos se as alterações ocorreram, usando timedatectl.

timedatectl

Definir manualmente a hora e a data

A data e a hora mudaram. Além disso, observe que o computador está usando uma hora UTC falsa. Também somos informados de que o relógio do sistema não está sendo sincronizado e o serviço NTP está inativo.

Recomendado:  Os danos à eletricidade estática ainda são um grande problema com a eletrônica?

Se você tiver acesso à Internet, assim que restaurar o serviço de sincronização de horário, o horário será recuperado e todos os detalhes serão redefinidos corretamente.

sudo systemctl start systemd-timesyncd.service
timedatectl

Reiniciando o serviço NTP e restaurando os valores de hora corretos

RTC: UTC ou LTZ?

É possível ter seu relógio em tempo real ajustado para o fuso horário local em vez de UTC—possível, mas desaconselhável. Se você fizer a alteração, verá um aviso sobre os efeitos terríveis que isso pode ter no seu sistema no futuro.

A razão para mostrar a você esse método é que você pode encontrar uma máquina em que eles estão tendo problemas estranhos com suas configurações de tempo. Isto é como definir o relógio em tempo real de volta para UTC.

Primeiro, precisaremos defini-lo para o fuso horário local.

timedatectl set-local-rtc 1

Então vamos pedir timedatectlseu status.

timedatectl

Acertar o relógio em tempo real para o fuso horário local e o aviso que o acompanha

Eu acho que eles deixaram seus sentimentos claros.

Para restaurar o relógio em tempo real para UTC, use este comando:

timedatectl set-local-rtc 0

Defina e esqueça

A menos que você tenha cometido um erro durante a instalação de sua distribuição Linux, ou você se realocou, geralmente não há razão para modificar as configurações do seu sistema e os relógios em tempo real.

Defina o relógio do sistema para seu fuso horário, o relógio em tempo real para UTC e verifique se o sistema está pesquisando um servidor de protocolo de horário de rede. Esse é o estado padrão após a maioria das instalações.

Se tudo estiver pronto, os sistemas de tempo do seu computador cuidarão de si mesmos.