Horário de verão 2010

Horário de Verão Hoje é o primeiro dia útil com o horário de verão brasileiro 2010 em vigor. Desde ontem, até o dia 20-02-2011 teremos que acordar uma hora mais cedo para chegar no trabalho na hora.

Como sempre, nem tudo na vida é automático então em algumas ocasiões é necessário ajustar todos os seus relógios no início e no final do período.  Alguns anos atrás eu escrevi um texto sobre como resolver o problema em sistemas Linux Debian e Ubuntu e talvez este seja um bom momento para relembrá-lo, acrescentando mais algumas informações.

Ajustando o fuso horário

Antes de mais nada certifique-se de que o timezone do seu sistema está certo. Em alguns sistemas como Debian e ubuntu basta consultar o arquivo /etc/timezone. Como abaixo:

welrbraga@vm:~$ cat /etc/timezone 
America/Sao_Paulo
welrbraga@vm:~$ 

Não esqueça de que o seu timezone pode ser diferente do meu que é “América/São Paulo”, para ajustá-lo você pode usar os comandos tzconfig ou  tzselect.

Forçando a barra com o tz-brasil

Caso você já tenha o pacote tz-brasil instalado em seu sistema (consulte o post já citado para saber como instalá-lo) você talvez precise forçar a atualização da lista de regras usando o comando:

tz-brasil --force

Outros sistemas além do sistema operacional

Lembre-se que nem todo sistema usa o timezone do seu sistema operacional e dependendo da configuração empregada durante a instalação poderá necessitar de uns ajustes finos.

Antão fica algumas dicas para solucionar alguns problemas que você pode encontrar pela frente, mas lembrando que podem existir outras maneiras de se resolver o problema então não deixe de procurar no Google por uma solução, caso estas não resolvam.

Remendos para o Apache

Eu possuo alguns sistemas Web escritas em PHP e especificamente um servidor com Apache 1.3 + PHP4 não atualizou o horário, embora o sistema estivesse com a hora correta.

Certificando-se que o timezone está correto (cat /etc/timezone) e a data/hora do sistema estava atualizada (date) bastou incluir a variável TZ=”America/Sao_Paulo” no script /etc/init.d/apache, parar e iniciar novamente o serviço para que o problema fosse resolvido.

Observe que a variável foi configurada exclusivamente para o Apache, caso queira configurar para todo o sistema considere colocá-la em /etc/profile ou outro arquivo que seja lido durante a inicialização geral do sistema.

Veja ainda que o Apache precisou ser parado (invoke-rc.d apache stop) e depois iniciado novamente (invoke-rc.d start). Por algum motivo que não achei explicação (também não procurei muito), nem o reload e nem mesmo o restart resolveram.

Para testar se está tudo Ok, caso você não possua nenhuma aplicação que exiba a hora, crie um arquivo chamado teste.php, na raiz do seu servidor web (/var/www, por exemplo) com o seguinte conteúdo:

<?php
echo date('d/m/Y H:i:s e T');
?>

Basta acessar o endereço: http://seuservidor/teste.php e confirmar se a data/hora está correta.

O MySQL dormiu no ponto

O servidor MySQL esqueceu de atualizar o horário, bastou reiniciar o serviço (invoke-rc.d mysql restart) e o sistema voltou com o horário atualizado.

Para confirmar se está tudo Ok, acesse o seu servidor usando um cliente mysql de sua preferência e digite a consulta:

SELECT NOW();

O resultado deverá ser a data/hora atual e corrigida.

PostgreSQL estranho

Achei muitas explicações sobre como resolver o problema no porstgres, mas a única que realmente resolveu o problema foi:

  1. Descomentar a linha timezone=unknown, dentro do arquivo postgresql.conf
  2. Reiniciar o serviço

Tentei com timezone=America/Sao_Paulo, mas não resolveu o problema então baseado a na leitura de alguns comentários que encontrei pelo Google deduzi que a forma padrão forçaria a leitura do timezone do SO. Estava certo e o problema foi resolvido.

Para confirmar se está tudo ok basta executar a mesma consulta SQL usada para testar o MySQL, mas usando um cliente que acesse o seu servidor PostgreSQL:

SELECT NOW();

Eu tentei apenas um reload no serviço do postgresql mas não resolveu, foi necessário realmente dar um restart para que tudo funcionasse como esperado.

Por fim

O horário de verão é muito bom para inúmeras ocasiões, mas para os sysadmin ele é sempre fonte de transtornos.

Como eu comentei no primeiro post sobre o assuntos as vezes a informática não parece lógica, pois você fez tudo certinho e na hora a “coisa” simplesmente não funciona.

Muitas vezes a culpa foi o cansaço, stress ou mesmo a preguiça que provocou esquecimento de algum detalhe.

Tenha uma lista com todos os seus servidores e quais serviços rodam neles. Verifique como eles se comportam com as mudanças de fuso quando da entrada/saída do horário de verão e escreva o procedimento adotado para resolver o problema. Ao fazer isto você reduzirá ao menos 90% dos problemas com “sistemas teimosos”.

Agora é só esperar o dia 20/02/2011, quando este período se encerrará, e torcer para que dê tudo certo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.