Linux Servidor linux

Urgente! Atualize seu horário de Verão no seu Servidor CentOS/RHEL 6/7

Urgente! Atualize seu horário de Verão no seu Servidor CentOS/RHEL 6/7

Artigo atualizado para o Fim do horário de verão de 2019.

Galera! venho com uma informação muito importante, não deixe suas aplicações dar problemas devido ao horário errado por causa do horário de verão, alguns estados adotam essa medida, já havia sido reduzido o horário devido as eleições e que seria alterado do dia 20 de outubro para 04 de novembro, porém alterou a data novamente para 18 de novembro por causa do ENEM e nesta semana recebemos a notícia que foi negada a nova solicitação de alteração da data do horário de verão, e não irá mais alterar a data do horário de verão para o dia 18 de novembro, que continuará no dia 04 de novembro.

Neste artigo eu ensino como atualizar o horário de verão manualmente no Linux.

CentOS/RHEL 6/7

# yum update tzdata

Pronto agora basta executar o comando para saber se realmente alterou.

# zdump -v /etc/localtime | grep 2018
zdump: warning: zone "/etc/localtime" abbreviation "-03" lacks alphabetic at start
/etc/localtime  Sun Feb 18 01:59:59 2018 UTC = Sat Feb 17 23:59:59 2018 -02 isdst=1 gmtoff=-7200
/etc/localtime  Sun Feb 18 02:00:00 2018 UTC = Sat Feb 17 23:00:00 2018 -03 isdst=0 gmtoff=-10800
/etc/localtime  Sun Nov  4 02:59:59 2018 UTC = Sat Nov  3 23:59:59 2018 -03 isdst=0 gmtoff=-10800
/etc/localtime  Sun Nov  4 03:00:00 2018 UTC = Sun Nov  4 01:00:00 2018 -02 isdst=1 gmtoff=-7200

Caso precisasse ser alterado dia 18 de novembro teria que seguir os passos abaixo, mas agora não irá mais alterar.

Como alterar o horário manualmente no linux.

Primeiro vamos executar o comando para verificar o horário de verão.

# zdump -v /usr/share/zoneinfo/America/Sao_Paulo | grep 2018
zdump: warning: zone "/usr/share/zoneinfo/America/Sao_Paulo" abbreviation "-03" lacks alphabetic at start
/usr/share/zoneinfo/America/Sao_Paulo  Sun Feb 18 01:59:59 2018 UTC = Sat Feb 17 23:59:59 2018 -02 isdst=1 gmtoff=-7200
/usr/share/zoneinfo/America/Sao_Paulo  Sun Feb 18 02:00:00 2018 UTC = Sat Feb 17 23:00:00 2018 -03 isdst=0 gmtoff=-10800
/usr/share/zoneinfo/America/Sao_Paulo  Sun Nov  4 02:59:59 2018 UTC = Sat Nov  3 23:59:59 2018 -03 isdst=0 gmtoff=-10800
/usr/share/zoneinfo/America/Sao_Paulo  Sun Nov  4 03:00:00 2018 UTC = Sun Nov  4 01:00:00 2018 -02 isdst=1 gmtoff=-7200

Agora iremos criar o arquivo no /tmp e setar o período que irá permanecer o horário de verão.

# vim /tmp/Sao_Paulo.zic
Rule    BrazilSP  2018    only    -       Nov     18      0:00    1:00    S      >> data de inicio 
Rule    BrazilSP  2019    only    -       Feb     16      0:00    0       -       >> data de fim

# Zone  NAME                    GMTOFF  RULES/SAVE      FORMAT  [UNTIL]
Zone    America/Sao_Paulo       -3:00   BrazilSP        BR%sT     >> timezone

Agora iremos utilizar o comando zic no arquivo Sao_Paulo.zic que vai alterar o horário de verão da time zone do arquivo: /usr/share/zoneinfo/America/Sao_Paulo.

# zic /tmp/Sao_Paulo.zic

Vamos atualizar a timezone do servidor para aplicar o horário de verão setado no arquivo Sao_Paulo.zic

# ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

Vamos verificar se o comando deu certo, executando o comando zdump.
Eeeee Tchanam, pronto! O horário foi alterado conforme a data que você definiu.

# zdump -v /usr/share/zoneinfo/America/Sao_Paulo | grep 2018
/usr/share/zoneinfo/America/Sao_Paulo  Sun Nov 18 02:59:59 2018 UTC = Sat Nov 17 23:59:59 2018 BRT isdst=0 gmtoff=-10800
/usr/share/zoneinfo/America/Sao_Paulo  Sun Nov 18 03:00:00 2018 UTC = Sun Nov 18 01:00:00 2018 BRST isdst=1 gmtoff=-7200

Informações adicionais:
Para verificar se está ativa ou não o horário de verão, utilize o comando timedatectl - (somente em sistemas que já utilizam o systemd, acredito que os novos sistemas operacionais linux já utilizam)

Quando estiver inativo irá aparecer da seguinte forma:

# timedatectl 
      Local time: Ter 2018-10-09 02:27:04 BRT
  Universal time: Ter 2018-10-09 05:27:04 UTC
        RTC time: Seg 2018-10-08 08:00:19
       Time zone: America/Sao_Paulo (BRT, -0300)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a >> Indica se está ativo ou não!

Eu fiz o teste com uma data qualquer e olha como ficou:

# timedatectl 
      Local time: Ter 2018-10-09 03:52:44 BRST
  Universal time: Ter 2018-10-09 05:26:44 UTC
        RTC time: Seg 2018-10-08 08:00:00
       Time zone: America/Sao_Paulo (BRST, -0134)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes >> Repare que está ativo, e logo abaixo exibe qual será o período. 
 Last DST change: DST began at  >> Começa em
                  Seg 2018-10-08 23:59:59 BRT
                  Ter 2018-10-09 01:26:00 BRST
 Next DST change: DST ends (the clock jumps 86 minutes backwards) at >> Termina em
                  Qui 2019-02-21 23:59:59 BRST
                  Qui 2019-02-21 22:34:00 BRT

Com certeza muita gente irá precisar alterar o horário de verão do seu servidor linux manualmente, acredito que irá ajudar bastante gente, espero que tenha gostado e te ajudado… Compartilhe com seus amigos para que não passe por um perrei desnecessário por falta de informação.

E por hoje é só! Curta nossas redes sociais, compartilhe e ative o sininho para receber notificação em seu browser de novos artigos… Abraços e até a próxima!

Referências:

man zic

comments powered by Disqus

Assine nossa Newsletter! 🐧

Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.