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

12

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

Atualmente, o fuso horário de nossos servidores Linux está definido para Europa / Istambul . Mas nenhuma atualização 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 para 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 essa situação se transforme em crise, decidimos ter um plano de backup que está definindo o fuso horário de nossos servidores como GMT + 3 fixo ; mas enfrentamos um comportamento estranho quando o GMT + 3 fixo é definido.

Vamos ver qual é a hora local e a hora UTC em nosso servidor antes de fazer 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 como GMT + 3 fixo da seguinte maneira:

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

Vamos ver a hora local e a hora UTC em nosso servidor após a alteração. O horário GMT + 3 é 3 horas mais cedo que o UTC, onde deve ser 3 horas mais tarde que o UTC , como visto na saída acima.

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

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?

vaha
fonte

Respostas:

12

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

Em algum momento, essa pergunta é a duplicata da pergunta feita em superuser.com .

Resposta cristalina é

"Zonas como Etc / GMT + 6 são intencionalmente revertidas para compatibilidade retroativa com os padrões POSIX"

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

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

Comando de exemplo:

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

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

Por exemplo, para definir o fuso horário GMT + 3 (3 horas à frente do UTC), use-se / usr / share / zoneinfo / Etc / GMT-3

vaha
fonte
+1 de mim, mas realmente, isso diz tudo o que você precisa saber sobre o POSIX e por que quase todo mundo odeia.
MadHatter 21/09
2

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

mdpc
fonte
1
Concordo com você. Se atualizar, então não há problema. Estamos apenas falando sobre um plano de backup.
Vaha