web-dev-qa-db-fra.com

Comment réinitialiser le fuseau horaire de manière permanente dans Debian?

Dreamhost semble penser que nous aimons le PDT, même si nous sommes dans le Midwest. Comment changer le fuseau horaire?

27
elynnaie

Un outil que j'ai trouvé plus facile à utiliser est dpkg-reconfigure. Utilisation:

Sudo dpkg-reconfigure tzdata

Vous aurez une multitude de choix, y compris des choix qui ne sont pas inclus dans tzselect.

70
Ynhockey

C'est probablement un peu tard pour le PO et davantage destiné aux autres chercheurs qui arrivent ici.

Si vous avez besoin d’une solution non interactive, essayez cette solution en modifiant le fuseau horaire avec dpkg-reconfigure tzdata et debconf-set-selections .

echo "Europe/Zurich" > /etc/timezone 
dpkg-reconfigure -f noninteractive tzdata

Vous pouvez déterminer votre fuseau horaire en fouillant dans/usr/share/zoneinfo. En fait, la commande dpkg-reconfigure ci-dessus copie le fichier approprié dans/etc/localtime. J'avais l'habitude de le faire manuellement, et cela semble bien fonctionner.

Ne soyez pas trop surpris si des processus longs ne captent pas le changement. par exemple, les horodatages des journaux Apache me viennent à l’esprit. Déterminez si cela compte et, par conséquent, si vous devez redémarrer les processus en cours ou même redémarrer.

13
mc0e

Pour le modifier de manière non interactive sur les versions récentes de Debian et Ubuntu (Stretch/Xenial, etc.), vous devez également supprimer /etc/localtime, sinon /etc/timezone sera écrasé.

echo 'Europe/Zurich' > /etc/timezone 
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

Cette réponse est basée sur la réponse de mc0e. Je ne peux pas ajouter de commentaire à ma réputation.

9
Vojta Myslivec

Mettre à jour:

La réponse canonique (pour laquelle Ynhockey mérite un crédit) semble être:

dpkg-reconfigure tzdata

Ma réponse originale est ci-dessous. J'aurais simplement supprimé cette réponse entièrement mais superuser.com ne permet pas de supprimer les réponses acceptées.

http://www.debian-administration.org/articles/213 dit

le moyen le plus simple de modifier votre fuseau horaire consiste à utiliser la commande /usr/bin/tzselect.

...

Une fois que vous avez défini votre fuseau horaire, vous pouvez modifier le paramètre UTC. Sur les machines Debian, vous pouvez le trouver dans le fichier /etc/default/rcS. Bien que changer cela nécessitera un redémarrage.

7
RedGrittyBrick

TL; DR

echo "TZ=Etc/UTC" >> /etc/environment
tzconfig

Etc/UTC est votre fuseau horaire préféré que vous avez trouvé avec tzselect.

Version plus longue

Quand vous utilisez

dpkg-reconfigure tzdata

les informations de fuseau horaire ne sont pas conservées après le redémarrage. Vous pouvez vérifier vos paramètres avec

diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`

Si vous ne mettez que /etc/timezone à jour, la mise à jour ne sera pas cohérente avec /etc/localtime, donc il est préférable d'exécuter

tzconfig

Utilisez tzselect pour savoir quels fuseaux horaires existent réellement (ou parcourez simplement le répertoire /usr/share/zoneinfo).

Dans les systèmes POSIX, la TZ doit prévaloir avant le /etc/localtime:

export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018

Utiliser directement TZpeut vous faire économiser de nombreux appels système car les fonctions liées à la date/heure fréquemment utilisées doivent accéder au système de fichiers chaque fois qu'un programme vous demande la date du jour. C'est une micro-optimisation, mais assez simple.

2
Tombart