18 de outubro de 2009

Horário de Verão

Depois de artigos pesados... sobre firewall e rede em massa.Escrevi um artigo mais light que também é importante: O Horário de verão.

O Horário de verão começou a alguns instantes... Então como fazer seu pinguim ficar no horário certinho?? Pra máquina de casa isso não é tão importante...Porém pra servidores é essencial. Vamos começar!!!

É super importante saber que o seu horário advém de um servidor NTP (se por acaso, você não tenha idéia do que seja um servidor ntp, então clique aqui).

Você tem duas alternativas:
  • Você vai até o servidor NTP (maneira recursiva)
  • O NTP vem até a sua máquina local (maneira natural)


  1. Forma Recursiva
Antes, do sync veja o local ou o seu GMT em /etc/timezone
# ntpdate ip_ntp_server

### :: NTP BR :: ###
a.ntp.br 200.160.0.8
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8

### :: NTPs da MICROSOFT :: ###
207.126.103.202
208.184.49.129
216.200.93.8

### :: NTP de UNIVERSIDADES :: ###

ntp.usp.br 143.107.151.117
ntp.ufsc.br 150.162.1.8
ntp.unicamp.br 143.106.2.3




2. Forma Natural


1. Verificar a existência do arquivo ‘/etc/localtime’. Se este arquivo existir verifique se ele é um link simbólico. Uma das formas de fazer esta verificação é executar o seguinte comando:


$ file /etc/localtime
localtime: timezone data


Não é recomendado possuir o arquivo /etc/localtime como link simbólico. Sistemas cujo diretório /usr é acessivel (não tiver sido montado, por exemplo) no momento de inicialização a máquina, os dados do arquivo localtime não serão lidos.


2. Verificar se existe algum arquivo no diretório /usr/share/zoneinfo/Brazil que contenha informações relativas a outros anos. Normalmente este arquivo tem extensão ZIC (.zic).


a) Se não existir um arquivo com tais dados então crie um novo (verao.2009.zic por exemplo) no diretório /usr/share/zoneinfo/Brazil/. Este arquivo deverá conter as seguintes linhas:


Rule Brazil 2009 only - Oct 18 00:00 1 S
Rule Brazil 2010 only - Feb 21 00:00 0 -
Zone Brazil/East -3:00 Brazil BR%sT


b) Se existir um arquivo com dados de outros anos basta inserir as linhas acima ao final do arquivo existente.


As duas primeiras linhas de configuração acima informam quando se inicia o horário de verão, quando termina e qual é a ação tomada. Lembre-se de que no início do horário de verão a hora local é acrescida em uma (1) hora.


A última linha informa qual arquivo será modificado pelo comando ‘zic’. No exemplo acima será o arquivo ‘East’ (dentro do diretório Brazil). Esta linha também informa qual o timezone original da região - no caso de São Paulo (East) temos UTC-3. Caso você esteja utilizando um timezone diferente do adotado em São Paulo (East) modifique estes parâmetros para o timezone de sua região:


#Fuso horario do Arquipelago de Fernando de Noronha:
Zone Brazil/DeNoronha -2:00 Brazil FN%sT

#Fuso horario dos estados a Leste
Zone Brazil/East -3:00 Brazil BR%sT

#Fuso horario dos estados a Oeste (AC, AM, RO, RR, MS, MT)
Zone Brazil/West -4:00 Brazil AM%sT


3. Uma vez feitos os devidos ajustes no arquivo ‘verao.2009.zic’ execute ocomando ‘zic’:


# zic verao.2009.zic


Neste caso em particular o comando atualizará o arquivo East.

4. Para verificar se as configurações corretas foram feitas execute o comando ‘zdump’, conforme as orientações abaixo (troque East pelo timezone de sua região):


# zdump -v Brazil/East


Você deverá obter uma saída como esta:

Brazil/East Sun Oct 19 02:59:59 2009 UTC = Sat Oct 17 23:59:59 2009 BRT isdst=0 gmtoff=-10800
Brazil/East Sun Oct 19 03:00:00 2009 UTC = Sun Oct 18 01:00:00 2009 BRST isdst=1 gmtoff=-7200
Brazil/East Sun Feb 16 01:59:59 2010 UTC = Sat Feb 20 23:59:59 2010 BRST isdst=1 gmtoff=-7200
Brazil/East Sun Feb 16 02:00:00 2010 UTC = Sat Feb 20 23:00:00 2010 BRT isdst=0 gmtoff=-10800


Note que em “Sat Oct 17 23:59:59 2009 BRT” o sistema ainda não está no horário de verão (indicacao ‘BRT’). No segundo seguinte as modificações do horário de verão entram em vigor, adiantando o localtime em uma hora: “Sun Oct 18 01:00:00 2009 BRST” (O horário mostrado ao usuário passará para 1 da manhã e não para meia-noite, mostrando o adiantamento do horário).


Em “Sat Feb 20 23:59:59 2010 BRST”, o horário de verão terminará no segundo seguinte, com o localtime sendo então atrasado em 1 hora: “Sat Feb 20 23:00:00 2010 BRT” (o horário mostrado ao usuário voltará para 23:00).


5. Por último, se o arquivo /etc/localtime não for um link para o arquivo /usr/share/zoneinfo/Brazil/East, deve-se copiar o arquivo East para /etc/localtime


$ cp East /etc/localtime



É isso pessoal! Moleza né?!

Nenhum comentário: