Horário de verão automático

Com esse artigo você poderá configurar sua estação ou servidor para iniciar e terminar o fuso-horário do horário de verão automaticamente de acordo com as datas fornecidas pelo governo para início e término do mesmo.

[ Hits: 48.584 ]

Por: Leandro Figueiredo Ortiz em 04/10/2004


Introdução



Os arquivos que ditam o horário que será obedecido pelo S.O., no caso do Brasil, estão em /usr/share/zoneinfo/Brazil. Dependendo da região em que se está (Sudeste, Centro-Oeste, Norte, Nordeste), o fuso-horário varia em relação ao relógio da BIOS! Para confirmar isso, digite o seguinte comando:

$ date

Esse comando mostra a hora armazenada pelo sistema operacional com base nos arquivos zic lá do /usr/share/zoneinfo/Brazil. Agora, digite o comando abaixo:

$ date -u

Esse comando mostra a hora da BIOS. Note que há diferença entre a hora da BIOS e a hora do sistema operacional!

Para fazermos com que o horário de verão seja automaticamente atualizado em seu início e encerramento, vamos criar um novo arquivo dentro de /usr/share/zoneinfo/Brazil:

# vi /usr/share/zoneinfo/Brazil/horario-verao.zic

Dentro desse arquivo, coloque as seguintes linhas, separando os blocos com a tecla TAB (->):

Rule  ->  Brazil  ->  2004  ->  only  ->  Oct  ->  31  ->  00:00  ->  1  ->  D
Rule  ->  Brazil  ->  2005  ->  only  ->  Feb  ->  15  ->  00:00  ->  0  ->  S
zone  ->  Brazil/East  ->  -3:00  ->  Brazil  ->  E%sT

Os dias de começo e término do horário de verão podem variar, assim como o arquivo zic, dependendo da região em que você se encontra. No meu caso, como estou no estado de SP, estou usando no exemplo o "East" (-3:00). Para testar, adiante a data do seu relógio do sistema:

# date -s "10/31/2004 01:00"

Feito isso, repita do comandos já mencionados acima:

$ date

$ date -u


Repare que durante o horário de verão, a diferença entre o relógio do sistema operacional e da BIOS não é mais de 3 horas como antes!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Necessidade do profissional de informática

Linux Thinstation para estações antigas

Leitura recomendada

Integrando o Mercury e o XMMS

Usando G4U, ProFTP e DHCP para clonar partições pela rede

Criando pacotes pré-compilados no Gentoo

Stream Ripper e Stream Tunner :: Capturando músicas de rádios online (SHOUTcast)

Implementando Wake Up on Lan (WoL) no Linux

  
Comentários
[1] Comentário enviado por pradox em 04/10/2004 - 14:37h

Este comando é válido para todas as distros?

[2] Comentário enviado por lefigo em 04/10/2004 - 14:50h

Eu testei no Conectiva e no Red Hat e ocorreu tudo certo! Creio que se houver alguma diferença nas outras distros, vai ser apenas na localização dos arquivos!

[3] Comentário enviado por removido em 05/10/2004 - 00:43h

Seu tutorial está excelente...uma dica importante para esta chatice do horário de verão que perturba todo mundo e não resolve nada...

[4] Comentário enviado por lordello em 05/10/2004 - 19:16h

Muito bom, mas o horário de verão de 2004/2005 foi anunciado diferente:

início: 02 Nov 2004
final: 19 Fev 2005

Então essas regras não iriam funciona. Pelo que pude entender, você tá incluindo apenas a região Sudeste, seria legal colocar outras regiões também.
Falou ae!

[5] Comentário enviado por lefigo em 05/10/2004 - 20:25h

Olá amigo! Obrigado pela dica, mas me parece bem claro no artigo o trecho em que digo que os dias podem variar, assim como a região:

"Os dias de começo e término do horário de verão podem variar, assim como o arquivo zic, dependendo da região em que você se encontra. No meu caso, como estou no estado de SP, estou usando no exemplo o "East" (-3:00)."

[ ]'s

Leandro

[6] Comentário enviado por dln_jr em 06/10/2004 - 15:23h

Aeeeeeeee legal deu certinhu aki tb!! Boa!

Abraços!

[7] Comentário enviado por dangelo em 06/10/2004 - 17:28h

Gostaria de explicar algumas coisas,

1 - o comando date -u não retorna a data da bios, e sim retorma a data GMT, pelo menos no Debian é isso, basta verificar no man.

[8] Comentário enviado por dangelo em 06/10/2004 - 17:41h

2 - Testei a solução e inicialmente, ajustando o relógio para o dia 31,
achei que havia funcionado, quando coloquei o relógio para o dia 29 percebi
que o horario de verão já estava funcionando, verificando pq descobri que o
Debian já tem uma definição de horário de verão e portanto minha alteração
não fez diferença nenhuma. Portanto fui verificar como fazer este ajuste no Debian e descobri que existe um pacote chamado tz-brasil,
basta apt-get install tz-brasil
O pacote já esta atualizado para a data do dia 2/11

[9] Comentário enviado por DondaJr em 10/10/2005 - 12:29h

Muito bem explicado.. eu estava com plrblemas aqui e me ajudou muito valw

[10] Comentário enviado por Credmann em 17/10/2006 - 14:07h

/etc/default/rcS: UTC=no

[11] Comentário enviado por groger em 22/10/2012 - 12:15h

A Bahia fica fora do horário de verão até 2014, diz Wagner (governador do Estado), confirma como tratar esta particularidade em: http://groger.wordpress.com/2012/10/22/dica-da-semana-horario-de-verao-20122013/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts