Tuesday, October 09, 2007

Horario de verão 2007/2008

GNU/Linux

Usuários GNU/Linux devem seguir o procedimento abaixo:

1. Verificar a existência do arquivo '/etc/localtime' e se este arquivo é um link.
* DICA! Não é recomendado possuir o arquivo /etc/localtime com link para o arquivo /usr/share/zoneinfo/Brazil/East, pois sistemas em que o diretório /usr não estiver acessível (não tiver sido montado, por exemplo) no momento de inicialização da maquina, as informações contidas no localtime não serão carregadas.

2. Verificar se no diretorio /usr/share/zoneinfo/Brazil existe algum arquivo NÃO BINÁRIO que contenha informações relativas a outros horários de verão (DICA!: geralmente um arquivo com extensão .zic)

Se não existir nenhum arquivo com tais informações, deverá ser criado um novo, de nome 'verao.2007.zic' por exemplo, e inserir as seguintes linhas.

Rule Brazil 2007 only - Oct 14 0:00 1 D
Rule Brazil 2008 only - Feb 17 0:00 0 S

Zone America/Sao_Paulo -3:06:28 - LMT 1914
-3:00 Brazil E%sT
Zone Brazil/East -3:06:28 - LMT 1914
-3:00 Brazil BR%sT

Se existir algum arquivo com informações de horário de verão de outros anos, bastará inserir as linhas mencionadas.

As duas primeiras linhas dizem quando se inicia o horário de verão, quando termina, e qual a ação a ser tomada. Lembre-se que no inicio do horário de verão, deve ser adicionada uma

A última linha diz qual o arquivo que será gerado pelo comando zic, no exemplo será o arquivo 'East' (dentro do diretório Brazil). Esta linha também informa o timezone da região, no caso de São Paulo é -3.

3. Com o arquivo 'verao.2007.zic' em mãos, deve-se executar o comando 'zic', tal como segue:

# zic verao.2007.zic.
No caso particular, este comando atualizará o arquivo East.

4. Por último, se o arquivo /etc/localtime não for um link para este arquivo deve-se copiar o arquivo East para /etc/localtime
# cp East /etc/localtime

Obs: Verifar se o procedimento foi executado com sucesso da seguinte forma:

bash-2.05# zdump -v Brazil/East |grep 200[78]
Brazil/East Mon Oct 8 20:45:25 2007 UTC = Mon Oct 8 17:45:25 2007 BRST isdst=0
Brazil/East Sun Oct 14 02:59:59 2007 UTC = Sat Oct 13 23:59:59 2007 BRST isdst=0
Brazil/East Sun Oct 14 03:00:00 2007 UTC = Sun Oct 14 01:00:00 2007 BRDT isdst=1
Brazil/East Tue Feb 26 01:59:59 2008 UTC = Mon Feb 25 23:59:59 2008 BRDT isdst=1
Brazil/East Tue Feb 26 02:00:00 2008 UTC = Mon Feb 25 23:00:00 2008 BRST isdst=0

Nao esquecer de fazer restart no serviço cron.d