O Linux possui arquivos com dados sobre o fuso horário e se há ou não horário de verão.
Caso esses dados estejam desatualizados podemos acabar com a hora do sistema alterada indevidamente e automaticamente!
Então basta atualizar …
Lembrando que vc deve ter a permissão de root para executar comandos que alteram as configurações do sistema.
Solução 1
Distribuições Debian/Ubuntu
date # Conferindo a hora. zdump -v Brazil/East | grep 2021 # Exibindo ass datas programadas para alteração do horário. apt-get update # Verifica se há atualizações de pacotes da distribuição. apt-get --only-upgrade install tzdata #Atualiza o pacote tzdata que contém os dados do fuso. zdump -v Brazil/East | grep 2021 # Dados do fuso atualizado (se existia horário de verão, agora ele não aparece mais) dpkg-reconfigure tzdata # Reconfigura o sistema para utilizar os dados novos. date # O horário de verão deve ter sido desativado e a hora correta estabelecida.
Caso seu fuso horário não esteja correto podemos definir facilmente usando o comando:
dpkg-reconfigure tzdata
Distribuições RedHat/CentOS…
Muda o nome dos comandos mas a ideia é a mesma dos comandos acima.
date zdump -v Brazil/East | grep 2021 yum update tzdata -y zdump -v Brazil/East | grep 2021 system-config-date date
Solução 2
E em algumas distros mais antigas a atualização do pacote tzdata não funcionou, então nos resta atualizar o arquivo da timezone manualmente.
No meu caso o arquivo é /usr/share/zoneinfo/America/Sao_Paulo
Dependendo da distro pode estar em outro local…
Baixei o pacote de http://sft.if.usp.br/debian/pool/main/t/tzdata/tzdata_2019b-0+deb9u1_all.deb
e extrai o arquivo Sao_Paulo mais atualizado (se vc esta no mesmo fuso horário é claro) e sobrescreva o do sistema. Utilize uma ferramenta de descompactação tipo o “Gerenciador de Arquivos Compactados do Gnome” para abrir e extrair só o que interessa, no caso o arquivo:
/usr/share/zoneinfo/America/Sao_Paulo
Dai usamos um dpkg-reconfigure pra atualizar a hora baseado no arquivo novo.
Solução 3
Distribuição antiga, o repositório padrão não funciona mais ou o apt parou de funcionar?!
Veja o término do suporte em: wiki.debian.org/LTS
Depois do término do suporte a distribuição é descontinuada e seu repositório é movido. O que causa erro caso queira instalar ou atualizar algum pacote.
É óbvio que vc precisa atualizar a distribuição, tããã kkkk, mas na emergência para resolver temporariamente o problema até que vc se organize e faça um upgrade do seu sistema.
Um caso de distribuição Debian mais antiga (wheezy):
Altere os endereços do servidor do repositório em /etc/source.list
Originalmente encontramos algo assim: deb http://ftp.br.debian.org/debian/ wheezy main deb-src http://ftp.br.debian.org/debian/ wheezy main deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main # wheezy-updates, previously known as 'volatile' deb http://ftp.br.debian.org/debian/ wheezy-updates main deb-src http://ftp.br.debian.org/debian/ wheezy-updates main
Solução: deb http://archive.debian.org/debian-archive/debian/ wheezy main deb-src http://archive.debian.org/debian-archive/debian/ wheezy main
Em http://archive.debian.org/debian-archive/debian/ existem arquivadas os repositórios de todas as distribuições (Debian) descontinuadas. E é claro que devemos trocar o nome wheezy para a verão da distribuição em uso.