web-dev-qa-db-fra.com

Désactiver les modifications de l'heure d'été (DST) sous Linux

Il y a quelques semaines, il est annoncé (par le ministère turc de l'Énergie et des Ressources naturelles) que l'heure d'été sera permanente et que GMT + 3 sera utilisé pour toujours dans le pays.

Actuellement, le fuseau horaire de nos serveurs Linux est défini sur Europe/Istanbul. Mais aucune mise à jour de tzdata n'est encore disponible.

En raison du manque de mise à jour, le fuseau horaire passera de GMT + 3 à GMT + 2 le 30 octobre 2016 automatiquement comme déclaré dans le fichier zoneinfo (/ usr/share/zoneinfo/Europe/Istanbul).

Vous pouvez voir les détails pour 2016 ci-dessous:

# 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

(En cas d'absence de mise à jour) Pour éviter que cette situation ne se transforme en crise, nous décidons d'avoir un plan de sauvegarde qui fixe le fuseau horaire de nos serveurs à GMT + 3 fixe; mais nous faisons face à un comportement étrange lorsque fixed GMT + 3 est défini.

Voyons quelles sont l'heure locale et l'heure UTC sur notre serveur avant de modifier le fuseau horaire.

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

Nous avons défini le fuseau horaire sur GMT + 3 fixe comme suit:

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

Voyons quelles sont l'heure locale et l'heure UTC sur notre serveur après modification. L'heure GMT + 3 est de 3 heures plus tôt que UTC où elle devrait être de 3 heures plus tard que UTC, comme le montre la sortie ci-dessus.

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

Cela ne change pas, même si nous réinitialisons l'heure locale ou l'heure 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

Pourquoi le décalage semble-t-il être en arrière?

12
vaha

Mise à jour n ° 1: La mise à jour de la base de données de fuseau horaire a été publiée récemment pour plusieurs systèmes d'exploitation sous leurs référentiels officiels. La version tzdata2016g inclut les paramètres de la modification mentionnée.

À un moment donné, cette question est le double de question posée sur superuser.com .

Une réponse limpide est

"Des zones comme Etc/GMT + 6 sont intentionnellement inversées pour une compatibilité descendante avec les normes POSIX"

Mais je pense qu'il ne devrait pas être supprimé pour aider les personnes qui souhaitent désactiver les changements d'heure d'été dans les systèmes Linux.

Pour désactiver les changements d'heure d'été , liez votre /etc/localtime fichier vers l'un des fichiers zoneinfo placés sous le dossier /usr/share/zoneinfo/Etc/

Exemple de commande:

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

Pour choisir le fichier zoneinfo le plus approprié , inversez le signe de votre GMT ciblé.

par exemple, pour définir le fuseau horaire GMT + 3 (qui a 3 heures d'avance sur UTC), il faut utiliser/usr/share/zoneinfo/Etc/GMT-3

12
vaha

À un certain point, de nouvelles révisions de la table TZ seront publiées et disponibles pour des mises à jour pour toutes les distributions Linux. Hmm .... J'aurais pu vous avertir qu'un tableau de fuseau horaire mis à jour avait été mis à disposition peu de temps après l'annonce de ce problème. Peut-être y aura-t-il un nouveau désignateur TZ pour votre situation.

2
mdpc