Horário de verão automatizado
Dica publicada em Linux / Introdução
Horário de verão automatizado
Configurando seu servidor GNU/Linux para que o mesmo entre e saia, de forma automática, do horário de verão!
Primeiramente, verifique se o seu sistema possui o pacote tzdata.
Se não, instale o "dito cujo"!
Entendendo melhor... mas direto ao ponto:
No diretório /usr/share/zoneinfo/Brazil/, estão os seguintes arquivos:
ls -l /usr/share/zoneinfo/Brazil/
Para checar se o arquivo de zona East está atualizado para atender o ano vigente de 2013, faça o seguinte :
zdump -v Brazil/East |grep 201[34]
Para isso, basta copiar o arquivo de zona de um GNU/Linux que esteja atualizado para o sistema desatualizado sobrepondo o existente.
Depois de copiado, via SSH (scp), o arquivo de zona atualizado, verifique se o arquivo /etc/timezone é ou não, um link para /usr/share/zoneinfo/Brazil/East:
# file /etc/zoneinfo
Se o retorno não for um link e sim um arquivo de zona, ASCII, timezone e etc, melhor ainda, pois esta é a forma correta de estar. Caso seja um link simbólico para o timezone e não um arquivo de timezone; essa é a forma errada de implementação. Mas, vamos continuar.
Agora, copie o arquivo de zona atualizado para o diretório correto:
# cp ~East /usr/share/zoneinfo/Brazil/
Sendo o nosso arquivo um arquivo de zona e não um link, podemos sobrepor o arquivo East existente pelo atualizado:
# cd /usr/share/zoneinfo/Brazil/
# cp East /etc/zoneinfo
Obs.: será questionado se quer sobrepor o arquivo: sim
Agora, para confirmar se os arquivos de zona, dos dois locais, estão idênticos, faça o seguinte:
# sum /etc/zoneinfo
E:
# sum /usr/share/zoneinfo/Brazil/East
Primeiramente, verifique se o seu sistema possui o pacote tzdata.
Se não, instale o "dito cujo"!
Entendendo melhor... mas direto ao ponto:
No diretório /usr/share/zoneinfo/Brazil/, estão os seguintes arquivos:
ls -l /usr/share/zoneinfo/Brazil/
lrwxrwxrwx 1 root root 27 Set 10 00:31 Acre -> ../posix/America/Porto_Acre lrwxrwxrwx 1 root root 24 Set 10 00:31 DeNoronha -> ../posix/America/Noronha lrwxrwxrwx 1 root root 26 Set 10 00:31 East -> ../posix/America/Sao_Paulo lrwxrwxrwx 1 root root 23 Set 10 00:31 West -> ../posix/America/ManausCada arquivo representa uma região do Brasil. No meu caso, que moro em Minas Gerais, que é representado pelo arquivo de zona East, que possui as linhas necessárias para a entrada e saída do horário de verão automaticamente.
Para checar se o arquivo de zona East está atualizado para atender o ano vigente de 2013, faça o seguinte :
zdump -v Brazil/East |grep 201[34]
Brazil/East Sun Feb 17 01:59:59 2013 UTC = Sat Feb 16 23:59:59 2013 BRST isdst=1 gmtoff=-7200 Brazil/East Sun Feb 17 02:00:00 2013 UTC = Sat Feb 16 23:00:00 2013 BRT isdst=0 gmtoff=-10800 Brazil/East Sun Oct 20 02:59:59 2013 UTC = Sat Oct 19 23:59:59 2013 BRT isdst=0 gmtoff=-10800 Brazil/East Sun Oct 20 03:00:00 2013 UTC = Sun Oct 20 01:00:00 2013 BRST isdst=1 gmtoff=-7200 Brazil/East Sun Feb 16 01:59:59 2014 UTC = Sat Feb 15 23:59:59 2014 BRST isdst=1 gmtoff=-7200 Brazil/East Sun Feb 16 02:00:00 2014 UTC = Sat Feb 15 23:00:00 2014 BRT isdst=0 gmtoff=-10800 Brazil/East Sun Oct 19 02:59:59 2014 UTC = Sat Oct 18 23:59:59 2014 BRT isdst=0 gmtoff=-10800 Brazil/East Sun Oct 19 03:00:00 2014 UTC = Sun Oct 19 01:00:00 2014 BRST isdst=1 gmtoff=-7200Sendo este o resultado, ou algo muito próximo, então a mudança ocorrerá automaticamente. Se não conter as linhas referenciando a entrada em outubro de 2013 e saída em fevereiro de 2014; será preciso atualizar o arquivo por um que atenda às exigências.
Para isso, basta copiar o arquivo de zona de um GNU/Linux que esteja atualizado para o sistema desatualizado sobrepondo o existente.
Depois de copiado, via SSH (scp), o arquivo de zona atualizado, verifique se o arquivo /etc/timezone é ou não, um link para /usr/share/zoneinfo/Brazil/East:
# file /etc/zoneinfo
Se o retorno não for um link e sim um arquivo de zona, ASCII, timezone e etc, melhor ainda, pois esta é a forma correta de estar. Caso seja um link simbólico para o timezone e não um arquivo de timezone; essa é a forma errada de implementação. Mas, vamos continuar.
Agora, copie o arquivo de zona atualizado para o diretório correto:
# cp ~East /usr/share/zoneinfo/Brazil/
Sendo o nosso arquivo um arquivo de zona e não um link, podemos sobrepor o arquivo East existente pelo atualizado:
# cd /usr/share/zoneinfo/Brazil/
# cp East /etc/zoneinfo
Obs.: será questionado se quer sobrepor o arquivo: sim
Agora, para confirmar se os arquivos de zona, dos dois locais, estão idênticos, faça o seguinte:
# sum /etc/zoneinfo
E:
# sum /usr/share/zoneinfo/Brazil/East
Referências
- RFC 6557 - Procedures for Maintaining the Time Zone Database
- IANA — Time Zone Database
- tz database - Wikipedia, the free encyclopedia