Desabilitar as alterações do horário de verão (DST) no Linux

8

Há algumas semanas, é anunciado (pelo Ministério de Energia e Recursos Naturais da Turquia) que o DST será permanente e o GMT + 3 será usado para sempre no país.

Atualmente, o fuso horário dos nossos servidores Linux está definido para Europa / Istambul . Mas nenhuma atualização do tzdata foi lançada ainda.

Devido à falta de atualização, o fuso horário será alterado de GMT + 3 para GMT + 2 em 30 de outubro de 2016 automaticamente, conforme declarado no arquivo zoneinfo (/ usr / share / zoneinfo / Europe / Istanbul).

Você pode ver os detalhes de 2016 abaixo:

# zdump -v /usr/share/zoneinfo/Europe/Istanbul | grep 2016
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 00:59:59 2016 UT = Sun Mar 27 02:59:59 2016 EET isdst=0 gmtoff=7200
/usr/share/zoneinfo/Europe/Istanbul  Sun Mar 27 01:00:00 2016 UT = Sun Mar 27 04:00:00 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 00:59:59 2016 UT = Sun Oct 30 03:59:59 2016 EEST isdst=1 gmtoff=10800
/usr/share/zoneinfo/Europe/Istanbul  Sun Oct 30 01:00:00 2016 UT = Sun Oct 30 03:00:00 2016 EET isdst=0 gmtoff=7200

(No caso de nenhuma atualização) Para evitar que esta situação se torne uma crise, decidimos ter um plano de backup que está definindo o fuso horário de nossos servidores para GMT + 3 fixo ; mas nos deparamos com um comportamento estranho quando GMT + 3 fixo é definido.

Vamos ver qual é a hora local e a hora UTC em nosso servidor antes de fazermos qualquer alteração no fuso horário.

# date
Wed Sep 21 11:13:11 EEST 2016
# date -u
Wed Sep 21 08:13:15 UTC 2016

Definimos o fuso horário para GMT + 3 fixo da seguinte forma:

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

Vamos ver quais são a hora local e a hora UTC em nosso servidor após a alteração. GMT + 3 vezes são 3 horas anteriores a partir do UTC, onde devem ser 3 horas posteriores a UTC , conforme visto na saída acima. p>

# date
Wed Sep 21 05:14:24 GMT+3 2016
# date -u
Wed Sep 21 08:14:26 UTC 2016

Ele não muda, mesmo se redefinirmos a hora local ou a hora UTC.

# date -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 GMT+3 2016
# date
Wed Sep 21 11:16:02 GMT+3 2016
# date -u
Wed Sep 21 14:16:05 UTC 2016

# date -u -s "21 Sep 2016 11:16:00"
Wed Sep 21 11:16:00 UTC 2016
# date
Wed Sep 21 08:16:01 GMT+3 2016
# date -u
Wed Sep 21 11:16:02 UTC 2016

Por que o deslocamento parece estar ao contrário?

    
por vaha 21.09.2016 / 10:42

2 respostas

7

Atualização # 1: A atualização do banco de dados de fuso horário é lançada recentemente para vários sistemas operacionais em seus repositórios oficiais. A versão tzdata2016g inclui configurações para a alteração mencionada.

Em algum momento, essa questão é a duplicata da pergunta feita no superuser.com .

Resposta clara é

"Zones like Etc/GMT+6 are intentionally reversed for backwards compatibility with POSIX standards"

Mas acredito que ele não deve ser excluído para ajudar as pessoas que desejam desabilitar as alterações do horário de verão nos sistemas Linux.

Para desabilitar as alterações do horário de verão , vincule seu arquivo /etc/localtime a um dos arquivos zoneinfo colocados sob a pasta /usr/share/zoneinfo/Etc/

Exemplo de comando:

# ln -s /usr/share/zoneinfo/Etc/GMT+3 /etc/localtime

Para escolher o arquivo zoneinfo mais adequado , inverta o sinal do seu GMT de destino.

i.e. Para definir o fuso horário GMT + 3 (que é de 3 horas à frente do UTC), deve-se usar / usr / share / zoneinfo / Etc / GMT-3

    
por 21.09.2016 / 16:41
1

Em algum momento, novas revisões da tabela TZ serão lançadas e estarão disponíveis para atualizações em todas as distribuições do Linux. Hmm .... eu poderia ter swarn que uma tabela de fuso horário atualizada tinha sido disponibilizada logo após o anúncio ter sido feito abordando este problema. Talvez possa haver um novo designador de TZ para sua situação.

    
por 21.09.2016 / 20:37