Como Configurar o Fuso Horário no Servidor Ubuntu 18.04

Para alterar o fuso horário do sistema no Servidor Ubuntu 18.04, primeiro verifique o nome com timedatectl list-timezones e depois defina-o conforme mostrado em sudo timedatectl set-timezone Asia/Seoul. tzselect é uma ferramenta para encontrar o nome do fuso horário, e executá-la sozinho não altera as configurações do sistema.

Diferença Entre Fuso Horário e Hora do Sistema

Um fuso horário é uma regra aplicada para exibir o mesmo momento como uma data e hora local. Por exemplo, Asia/Seoul é o nome do fuso horário de Seul e está 9 horas à frente do UTC (Tempo Universal Coordenado). Alterar o fuso horário geralmente muda a regra de exibição, mas não sincroniza o relógio com um servidor de tempo na internet.

Se você tiver tarefas agendadas ou análise de logs que operam com base na hora local no servidor, verifique primeiro o impacto da alteração. Alguns programas usam suas próprias configurações de fuso horário ou variáveis de ambiente, então eles podem parecer diferentes das configurações do sistema. O suporte geral de segurança para o Ubuntu 18.04 terminou, então verifique o escopo aplicável em cronograma de manutenção de segurança do Ubuntu e planeje migrar para uma versão suportada.

Verifique o fuso horário atual

Use o seguinte comando para verificar as configurações de hora e fuso horário do sistema. Anote o nome mostrado em Time zone antes de fazer alterações, para que possa reverter depois.

timedatectl status
date
date -u

timedatectl status mostra a hora local do sistema, UTC e fuso horário. date mostra a hora local aplicável ao ambiente atual, e date -u mostra o UTC. Se a variável de ambiente TZ estiver definida no shell atual, a saída date pode diferir do fuso horário padrão do sistema.

Altere o fuso horário do sistema usando timedatectl

Primeiro, verifique os nomes de fusos horários disponíveis. A lista pode variar dependendo dos dados de fuso horário instalados.

timedatectl list-timezones | grep -F 'Asia/Seoul'

Se Asia/Seoul estiver na lista, configure o fuso horário do sistema com o seguinte comando. Privilégios de administrador são necessários. Se você estiver em uma região diferente, substitua pelo nome encontrado na lista.

sudo timedatectl set-timezone Asia/Seoul
timedatectl status

Se o comando for bem-sucedido, o nome selecionado aparecerá em Time zone. Se ocorrer um erro, verifique a grafia do nome, a lista disponível e os privilégios de administrador. Este comando pode não ser utilizável se o sistema não usar systemd ou se as alterações forem restritas em um contêiner.

Para reverter ao fuso horário original, use o nome registrado antes da alteração como argumento para o mesmo comando. Por exemplo, use o seguinte comando apenas quando o valor anterior era Etc/UTC.

sudo timedatectl set-timezone Etc/UTC
timedatectl status

Este comando altera a configuração do fuso horário do /etc/localtime. Se o relógio de tempo real (RTC) do hardware estiver ajustado para o horário local, isso também pode afetar o RTC. Para mais detalhes, consulte o manual do timedatectl no Ubuntu 18.04.

Usando tzdata e tzselect

Você também pode definir o fuso horário do sistema usando um menu interativo com o seguinte comando. Na lista de regiões, selecione Asia, e na lista de cidades, selecione Seoul. Os números no menu podem variar dependendo do ambiente, então verifique os itens exibidos na tela.

sudo dpkg-reconfigure tzdata

Após a conclusão, verifique novamente o fuso horário do sistema com timedatectl status. Por outro lado, tzselect apenas imprime o nome do fuso horário selecionado e não altera o fuso horário de todo o sistema. Você pode usar o nome obtido ao selecionar a região e a cidade como argumento de timedatectl set-timezone.

tzselect

Para executar um comando específico em um fuso horário diferente, você pode especificar TZ para esse comando. O exemplo a seguir se aplica apenas a essa execução única de date e não altera as configurações do sistema.

TZ=Asia/Seoul date

export TZ=Asia/Seoul afeta o shell atual e os programas iniciados a partir desse shell, mas não altera as configurações para todo o sistema. Você pode desativar essa variável no shell atual com unset TZ. Para mais detalhes, consulte o manual Ubuntu tzselect.

Configurações de tela e verificação após a alteração

Se um ambiente de desktop gráfico estiver instalado, você também pode selecionar o fuso horário nas configurações em Data e Hora. Se a configuração automática do fuso horário estiver ativada, a seleção manual pode ser restringida. A localização do menu varia dependendo do ambiente de desktop, e uma instalação típica de Servidor pode não ter interface gráfica.

Após a alteração, verifique timedatectl status e revise os logs e tarefas agendadas dos serviços afetados. Se o fuso horário estiver correto, mas a hora real estiver incorreta, você precisará verificar separadamente o serviço de sincronização de horário e a conexão de rede. Se apenas um aplicativo específico mostrar um horário diferente, verifique também os TZ desse processo e as configurações do aplicativo.