Missão

Desenvolvermos soluções acessíveis e de qualidade, solucionando os problemas e agregando valor ao serviço prestado por nossos clientes.

Visão

Sermos reconhecidos como profissionais de excelência em nossas áreas de atuação.

Compromisso

Fornecer aos clientes o melhor serviço e com a melhor qualidade.

Configurando mudanças de horário de verão

Comumente o Brasil apresenta alterações na agenda para entrada / saída do horário de verão. Infelizmente, nem sempre as distribuições Linux conseguem soltar uma correção em tempo hábil (embora deveriam, pois as mudanças são conhecidas pelo menos com uma semana de antecedência...), forçando aos administradores a reconfiguração manual de seus sistemas.

Este documento tem por objetivo apresentar a sintaxe para correção do horário de verão de 2002, que foi mudado de 13 de outubro para 03 de novembro, devido às eleições.

Procedimento de configuração

Pré-requisitos:

Procedimento

Gerando as regras

O arquivo /etc/localtime contém informações binárias a respeito da configuração do relógio da máquina. Estas informações referem-se à zona de fuso-horário que a máquina está sujeita, bem como início e término do horário de verão, se aplicável.

Um arquivo texto contendo as regras que serão compiladas deverá ser criado. O arquivo pode ter qualquer nome e usaremos o exemplo de fuso-2002. Para o ano de 2002, especificamente, as regras que nos interessam no momento são:

Rule Brazil  2002    only    -       Nov     Sun>=3   00:00   1       D
Rule Brazil  2003    only    -       Feb     Sun>=16  00:00   0       S

Zone    Brazil/East             -3:00   Brazil          BR%sT

O formato deste arquivo é extremamente simples mas, como quase tudo no Unix / Linux, extremamente eficiente e versátil. A documentação do zic (man zic) fornece maiores informações a respeito da sintaxe e possíveis combinações. Neste momento será suficiente a explicação das regras acima.

Uma regra possui a seguinte sintaxe

Rule  NAME  FROM  TO    TYPE  IN   ON       AT    SAVE  LETTER/S

ou seja, é sempre iniciada pela palavra "Rule", seguida do nome do conjunto de regras da qual esta é parte.

Os campos FROM e TO indicam o ano de início e de término cobertos por esta regra. A palavra reservada only, no campo TO, indica que a regra é válida apenas para o ano especificado no campo FROM.

Os demais campos até o campo SAVE apenas indicam quando a regra será aplicada.

O campo SAVE informa a quantia de horas que deve ser adicionada no dia e hora especificados. No início do horário de verão adicionamos uma hora ao relógio.

O último campo, LETTER/S será utilizado pela regra de fuso, descrita abaixo.

Uma regra de fuso tem a seguinte forma:

Zone  NAME                GMTOFF  RULES/SAVE  FORMAT  [UNTIL]

A palavra "Zone" é obrigatória, para indicar que esta linha irá tratar de uma zona de fuso horário.

O campo NAME indica o nome do fuso horário. Este nome será usado na criação do arquivo binário, após a compilação. Ele será criado relativamente ao diretório /usr/share/zoneinfo.

O campo GMTOFF indica o offset, ou seja, o deslocamento em relação a UTC para a obtenção da hora padrão.

O campo RULES/SAVE possui o nome da regra ("Rule") que deve ser aplicada a este fuso horário.

O campo FORMAT possui a abreviação que deve aparecer após a indicação da hora. Aqui o uso de "%s" fará com que o último campo da regra seja substituído no lugar de "%s". No nosso caso, fora do horário de verão teríamos "BRST" e no horário de verão "BRDT".

Compilando as regras

De posse de nosso arquivo fuso-2002 basta que executemos, como superusuário, o comando

zic fuso-2002

para que o arquivo /usr/share/zoneinfo/Brazil/East seja atualizado.

Implementando as mudanças

Depois de compilado, basta que copiemos o arquivo gerado (/usr/share/zoneinfo/Brazil/East) como /etc/localtime.

As mudanças têm efeito imediatamente.

Uma nota quanto a interfaces gráficas e seus relógios: pode ser necessário reiniciar a aplicação de relógio se a mesma não consulta o sistema.

Fontes utilizadas

Dados deste documento

Autor: Jorge Godoy

Data: 12 de outubro de 2002

Última atualização: 12 de outubro de 2002

“Um novo conceito em prestação de serviços”