Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Fedora 30 est mort ce soir

#1 21/12/2019 21:26:09

Edouard_le_homard
Rédacteur Wiki
Rédacteur Wiki
Lieu : Sous un rocher noir
Inscription : 24/03/2012
Messages : 3 551

[Résolu] ajuster automatiquement le fuseau horaire ?

Hello,

Est-il possible d'ajuster automatiquement le fuseau horaire sur KDE ? Grâce à https://unix.stackexchange.com/questions/90325/automatically-set-linux-timezone-according-to-location je comprends que ntp ne fait pas cela. L'un entre vous a-t-il déjà utilisé le script évoqué, ou a-t-il une solution à proposer ?


Asus VivoBook S 15 Fedora 31 x86_64 KDE

Hors ligne

#2 22/12/2019 01:05:21

blz
Membre
Inscription : 14/10/2005
Messages : 443
Site Web

Re : [Résolu] ajuster automatiquement le fuseau horaire ?

Hello;
Qu'entends-tu par automatiquement ? En fonction de quoi ?
Est-ce que la commande "timedatectl" conviendrait ?
voir ce fil:
"Heure bios: ok, heure fedora: ko"
https://forums.fedora-fr.org/viewtopic.php?id=69849

Dernière modification par blz (22/12/2019 01:06:52)

Hors ligne

#3 22/12/2019 16:42:21

Edouard_le_homard
Rédacteur Wiki
Rédacteur Wiki
Lieu : Sous un rocher noir
Inscription : 24/03/2012
Messages : 3 551

Re : [Résolu] ajuster automatiquement le fuseau horaire ?

Hello

> Qu'entends-tu par automatiquement ? En fonction de quoi ?
De la localisation de la machine, ce qui peut être fait avec les coordonnées gps par exemple, cf redshift. J'imagine que cela est fait grâce à l'adrrsse ip mais aucune certitude


Asus VivoBook S 15 Fedora 31 x86_64 KDE

Hors ligne

#4 23/12/2019 21:10:03

blz
Membre
Inscription : 14/10/2005
Messages : 443
Site Web

Re : [Résolu] ajuster automatiquement le fuseau horaire ?

Re hello;

Peut-être une piste pour faire cela automatiquement: une commande à lancer en root (pour être autorisé à changer le fuseau horaire).
Surement possible de la mettre dans un script bash pour pouvoir le lancer automatiquement au démarrage, ou alors dans une tache cron si on change de fuseau horaire toutes les 5 minutes (...).

C'est surement à améliorer pour éviter de passer par des fichiers temporaires, je n'ai pas assez cherché comment récupérer la sortie d'une commande pour l'utiliser dans la suivante.

Enfin, à tester si le site utilisé renseigne toujours la "tiimezone" dans une syntaxe comprise par la commande timedatectl.

Le site utilisé pour obtenir la "timezone" selon l'IP est:
https://ipinfo.io/

--- 1/ On récupère son contenu qu'on enregistre dans un fichier ipinfo.html:

[root@linux z_tmp]# wget -O ipinfo.html ipinfo.io

Son contenu est:

[root@linux z_tmp]# more ipinfo.html 
{
  "ip": "xx.xx.xxx.xx",
  "city": "Issy-les-Moulineaux",
  "region": "Île-de-France",
  "country": "FR",
  "loc": "48.8210,2.2772",
  "org": "AS3215 Orange S.A.",
  "postal": "92130",
  "timezone": "Europe/Paris",
  "readme": "https://ipinfo.io/missingauth"
}
[root@linux z_tmp]#

--- 2/ On récupère les valeurs de ce fichier qu'on écrit dans le fichier stepA.txt:

awk '{print $2}' ipinfo.html > stepA.txt

Ce qui donne:

[root@linux z_tmp]# more stepA.txt 

"xx.xx.xxx.xx",
"Issy-les-Moulineaux",
"Île-de-France",
"FR",
"48.8210,2.2772",
"AS3215
"92130",
"Europe/Paris",
"https://ipinfo.io/missingauth"

[root@linux z_tmp]#

--- 3/ On récupère la neuvième ligne qui contient la "timezone" et on l'écrit dans le fichier stepB.txt:

awk 'NR==9' stepA.txt > stepB.txt

Ce qui donne:

[root@linux z_tmp]# more stepB.txt 
"Europe/Paris",
[root@linux z_tmp]# 

--- 4/ On extrait la chaine de caractères entre les guillemets, qu'on écrit dans le fichier stepC.txt:

[root@linux z_tmp]# awk -F'\"' '{print $2}' stepB.txt > stepC.txt

Ce qui donne:

[root@linux z_tmp]# more stepC.txt
Europe/Paris
[root@linux z_tmp]#

--- 5/ Et enfin, on envoie ce paramètre dans la commande timedatectl:

more stepC.txt | awk -F: '{ "timedatectl set-timezone "$1""}'

On peut exécuter toutes ces commandes l'une après l'autre dans une seule ligne en les enchainant avec des "&&" (ou bien mettre ces commandes dans un script):

[root@linux z_tmp]# timedatectl
               Local time: lun. 2019-12-23 20:04:25 CET
           Universal time: lun. 2019-12-23 19:04:25 UTC
                 RTC time: lun. 2019-12-23 19:04:25
                Time zone: Europe/Paris (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@linux z_tmp]# 
[root@linux z_tmp]# timedatectl set-timezone America/New_York
[root@linux z_tmp]# 
[root@linux z_tmp]# timedatectl
               Local time: lun. 2019-12-23 14:05:06 EST
           Universal time: lun. 2019-12-23 19:05:06 UTC
                 RTC time: lun. 2019-12-23 19:05:07
                Time zone: America/New_York (EST, -0500)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@linux z_tmp]# 
[root@linux z_tmp]# wget -O ipinfo.html ipinfo.io && awk '{print $2}' ipinfo.html > stepA.txt && awk 'NR==9' stepA.txt > stepB.txt && awk -F'\"' '{print $2}' stepB.txt > stepC.txt && more stepC.txt | timedatectl set-timezone "$(cat stepC.txt)"
--2019-12-23 14:05:37--  http://ipinfo.io/
Résolution de ipinfo.io (ipinfo.io)… 216.239.34.21, 216.239.38.21, 216.239.36.21, ...
Connexion à ipinfo.io (ipinfo.io)|216.239.34.21|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 262 [application/json]
Sauvegarde en : « ipinfo.html »

ipinfo.html                   100%[=================================================>]     262  --.-KB/s    ds 0s      

2019-12-23 14:05:38 (5,90 MB/s) — « ipinfo.html » sauvegardé [262/262]

[root@linux z_tmp]# 
[root@linux z_tmp]# timedatectl
               Local time: lun. 2019-12-23 20:05:46 CET
           Universal time: lun. 2019-12-23 19:05:46 UTC
                 RTC time: lun. 2019-12-23 19:05:46
                Time zone: Europe/Paris (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@linux z_tmp]# 

Hors ligne

#5 24/12/2019 00:09:19

madko
Contributeur Fedora et Linuxé depuis 1994
Modérateur
Lieu : Noisy the Great (9³)
Inscription : 22/12/2006
Messages : 8 452
Site Web

Re : [Résolu] ajuster automatiquement le fuseau horaire ?

Tu as un bel exemple ici https://wiki.archlinux.org/index.php/System_time

En gros via un dispatcher NetworkManager, une commande peut être lancée à la connexion.
Création du script  /etc/NetworkManager/dispatcher.d/09-timezone

#!/bin/sh
case "$2" in
    up)
        timedatectl set-timezone "$(curl --fail https://ipapi.co/timezone)"
    ;;
esac

Tu nous diras si ça marche, mais y'a pas de raison. L'avantage c'est que ce n'est pas dépendant de KDE.


Linux, ya moins bien, mais c'est plus chèr!!!
Fedora 32 WorkStation sur HP 850 G5
Fedora 32 SilverBlue sur Lenovo Thinkpad Yoga 12

Hors ligne

#6 25/12/2019 01:39:03

Edouard_le_homard
Rédacteur Wiki
Rédacteur Wiki
Lieu : Sous un rocher noir
Inscription : 24/03/2012
Messages : 3 551

Re : [Résolu] ajuster automatiquement le fuseau horaire ?

Hello, merci pour vos réponses, je vous tiens au courant à mon retour en Europe début janvier. d'ici là je vous souhaite de bonnes fêtes !


Asus VivoBook S 15 Fedora 31 x86_64 KDE

Hors ligne

#7 25/12/2019 22:01:56

Edouard_le_homard
Rédacteur Wiki
Rédacteur Wiki
Lieu : Sous un rocher noir
Inscription : 24/03/2012
Messages : 3 551

Re : [Résolu] ajuster automatiquement le fuseau horaire ?

En fait je viens de tester à l'instant en mettant le fuseau horaire français puis en rebootant, ça ajuste correctement le fuseau horaire. Merci encore !


Asus VivoBook S 15 Fedora 31 x86_64 KDE

Hors ligne

Pied de page des forums