Pular para o conteúdo

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.
Leandro Figueiredo Ortiz lefigo
Hits: 49.524 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

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!

   1. Introdução

Linux Thinstation para estações antigas

Necessidade do profissional de informática

Instalando Debian através de um win32 executável

Promoção RedBug + Viva o Linux

Sincronizando o Nokia 2630 com o Evolution no Linux

Membro da comunidade Viva O Linux na Espanha

Um kiosk web para consultas

#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

Contribuir com comentário

Entre na sua conta para comentar.