Como configurar o horário de verão manualmente no Linux

O horário de verão no Brasil estava previsto para iniciar em 21/10/2018 e acabar em 19/02/2019 mas foi modificado para iniciar em 04/11/2018 e acabar em 16/02/2019.

Servidores com Linux contém uma estrutura fixa para atualizar o horário de verão mas quando há uma mudança como a deste ano, precisamos fazer isso manualmente caso contrário poderemos ter data/hora errada em relatórios, logs, etc.

Atenção! A responsabilidade por qualquer alteração em seu sistema é só sua. Na dúvida, não faça nada.

1) Crie um arquivo, ex: /home/$USER/horarioverao, com o seguinte conteúdo:

Rule Brazil 2018 only – Nov 04 00:00 1:00 S
Rule Brazil 2019 only – Feb 17 00:00 0 S
Zone Brazil/East -3:00 Brazil BR%sT

* O conteúdo acima adianta em 1 hora o horário da máquina a partir de 04/11/2018 e reverte em 17/02/2019.

2) Use o comando zic para criar um binário em um diretório qualquer:

sudo zic -d /opt /home/$USER/horarioverao

3) O comando acima vai criar a estrutura abaixo:

user@server:~$ ls -lh /opt/Brazil/East
-rw-r–r– 1 root root 165 Oct 4 16:11 /opt/Brazil/East

4) O arquivo East é binário; copie o original e substitua pelo que acabou de criar desta maneira:

sudo cp /usr/share/zoneinfo/Brazil/East /usr/share/zoneinfo/Brazil/East.original

sudo cp /opt/Brazil/East /usr/share/zoneinfo/Brazil/

5) Em seguida, substitua o arquivo /etc/localtime pelo arquivo East que acabou de criar desta maneira:

sudo cp /opt/Brazil/East /etc/localtime

6) Confirme usando o comando abaixo:

sudo zdump -v /usr/share/zoneinfo/Brazil/East |grep 201[89]

/usr/share/zoneinfo/Brazil/East Sun Nov 4 02:59:59 2018 UTC = Sat Nov 3 23:59:59 2018 BRST isdst=0 gmtoff=-10800
/usr/share/zoneinfo/Brazil/East Sun Nov 4 03:00:00 2018 UTC = Sun Nov 4 01:00:00 2018 BRST isdst=1 gmtoff=-7200
/usr/share/zoneinfo/Brazil/East Sat Feb 17 01:59:59 2019 UTC = Fri Feb 16 23:59:59 2019 BRST isdst=1 gmtoff=-7200
/usr/share/zoneinfo/Brazil/East Sat Feb 17 02:00:00 2019 UTC = Fri Feb 16 23:00:00 2019 BRST isdst=0 gmtoff=-10800

Pronto. O horário da máquina será adiantado em 1 hora a zero hora de 04/11/2018 e retrocederá em 1 hora a zero hora de 17/02/2019.

PARA DESFAZER A CONFIGURAÇÃO ACIMA:

sudo cp /usr/share/zoneinfo/Brazil/East.original /usr/share/zoneinfo/Brazil/East
sudo cp /usr/share/zoneinfo/Brazil/East /etc/localtime

Tutorial testado somente em Slackware.