Comment définir automatiquement le fuseau horaire par défaut du système sous Linux en utilisant Internet? À mon avis, les serveurs NTP ne peuvent mettre à jour que l'heure, mais pas le fuseau horaire. Y a-t-il un serveur qui peut changer le fuseau horaire?
linux
networking
timezone
geolocation
Programmeur intégré
la source
la source
Réponses:
Il y a quelque temps, j'ai écrit un programme qui fait ça: tzupdate .
Vous pouvez voir à quoi il définirait votre fuseau horaire (sans le définir réellement) en exécutant
tzupdate -p
:Vous pouvez le définir pour de vrai en exécutant en
tzupdate
tant que root.Cela fonctionne par:
/etc/localtime
pour pointer vers le fichier zoneinfo pour ce fuseau horairela source
C'est un vieux fil, mais toujours pertinent pour kubuntu 1710 qui ne change pas automatiquement le fuseau horaire. J'utilise la solution de Chris Down pour tzupdate, mais je m'assure également qu'elle se déclenche lorsque le système essaie de se connecter à un réseau (wifi ou autre). Cela suppose que vous utilisez Network Manager.
Ouvrez d'abord un terminal.
Installer tzupdate
Assurez-vous ensuite qu'il est accessible à tous les utilisateurs
Testez que cela fonctionne
Nous devons ensuite faire est de s'assurer que cela est accessible par tous les utilisateurs
qui vous dépose en tant que root, puis vérifie que la commande modifie votre fuseau horaire. Assurez-vous ensuite de quitter pour revenir en tant qu'utilisateur normal
Assurez-vous que tzupdate peut être exécuté avec sudo sans mot de passe. Cela est nécessaire pour une étape ultérieure lorsque nous déclenchons cela à partir de networkmanager qui l'exécute en arrière-plan. Tapez ceci dans un terminal pour modifier le fichier sudoers
Ajoutez cette ligne à la fin du fichier
Appuyez sur CTRL-X, puis appuyez sur Y puis sur ENTRÉE pour enregistrer les modifications
Nous nous assurons ensuite que NetworkManager appelle toujours cela après avoir déclenché un changement de connexion réseau (par exemple lors de la connexion à un wifi). Pour cela, nous créons un fichier appelé tzupdate dans le dossier dispatcher.d qui appelle simplement sudo tzupdate. Le fichier a besoin d'autorisations exécutables pour s'exécuter
Notez que NetworkManager appellera execute sudo (c'est-à-dire sudo tzupdate) qui demandera généralement un mot de passe.
Il pourrait y avoir une meilleure façon de le faire, c'est-à-dire que NetworkManager n'appelle cela que lorsqu'il met en place une connexion et non pas pour le faire (comme ci-dessus) - j'ai essayé de mettre le script dans / etc / network / if-up .d mais cela n'a pas fonctionné pour moi
Pour tester cela dans Kubuntu - Changez votre fuseau horaire local en quelque chose d'autre (Allez dans le plasmoïde Date dans votre barre des tâches et faites un clic droit et sélectionnez 'Ajuster la date / heure' puis 'TimeZone' dans l'onglet)
Éteignez votre wifi et rallumez-le - vous verrez qu'une fois qu'il se connecte au wifi, il semble attendre environ 30 secondes, puis changer votre fuseau horaire avec succès.
Notez que cela n'a pas été testé avec le wifi où il faut entrer un mot de passe sur une page Web. Espérons que le fait que cela fonctionne à la toute fin d'une connexion réseau devrait donner suffisamment de temps à un utilisateur pour entrer ses informations d'identification - sinon cela peut nécessiter des ajustements supplémentaires (vérifiez qu'une connexion existe, vérifiez que vous êtes en mesure de vous connecter à Internet, attendez pendant X secondes si vous ne pouvez pas vous connecter à Internet, puis réessayez Y fois
la source
Ce que vous entendez par "mise à jour du fuseau horaire" n'est pas clair.
Unix et Linux gardent le temps en nombre de secondes depuis le 1er janvier 1970 à 00h00 UTC. L'horloge système Unix est donc indépendante du fuseau horaire. Les fuseaux horaires n'existent pas dans le noyau Linux; ce n'est que lorsqu'une application en espace utilisateur affiche le temps que le nombre de secondes depuis 1970 est interprété à l'aide d'un fuseau horaire. Habituellement, cette interprétation se fait via les fonctions de la bibliothèque C. Le fuseau horaire est sélectionné par la
TZ
variable d'environnement. Les définitions de fuseau horaire (qui consistent en un nom de fuseau horaire, décalé de l'UTC, les dates auxquelles l'heure d'été est en vigueur et les décalages pendant l'heure d'été) font partie de GNU libc et sont généralement incluses dans les distributions Linux en tant que package "tzdata". Par conséquent, la mise à jour des définitions de fuseau horaire est une question de fonctionnementapt-get upgrade
,yum update
ou une opération similaire.Notez que certains logiciels, tels que Java, ont leurs propres fichiers de définition de fuseau horaire, qui doivent être mis à jour séparément.
NTP garde une trace du nombre de secondes depuis le 1er janvier 1900, UTC . Par conséquent, NTP, comme le noyau Unix, n'a aucun concept de fuseaux horaires.
la source