Petite astuce rapide pour mettre Ă jour votre Raspberry PI Ă la bonne date et Ă la bonne heure quand plus rien ne va.
Les versions récentes de Raspbian
et de Raspberry PI OS
gĂšrent, par dĂ©faut, lâheure Ă lâaide de timedatectl. timedatectl fait partie de systemd
La configuration par dĂ©faut attend que la synchronisation de lâheure se fasse au travers du protocole ntp
(« Net Time Protocol »).
Lorsque votre machine nâest pas Ă lâheure, il nâest pas possible de faire des mises Ă jours ou dâinstaller de nouveaux paquets.
Vous pouvez rĂ©soudre cela Ă lâaide dâune commande du type :
sudo timedatectl set-ntp False
sudo timedatectl set-time "Fri 2021-10-08 12:01:06 CEST"
sudo timedatectl set-ntp True
Le principe est dâexĂ©cuter les commandes en tant qu'administrateur de la machine et de commencer par dĂ©sactiver la synchronisation ntp
.
Notez que le format suivant est valide, mais qu'il ne prend pas en compte le décalage horaire.
sudo timedatectl set-ntp False
sudo timedatectl set-time "2021-10-08 12:01:06"
sudo timedatectl set-ntp True
Le plus gros problÚme qui vous reste à résoudre étant de donner une chaßne pour la date correcte.
Pour vous donner une idée, je vous propose de regarder ce que vous retournent les 3 commandes suivantes :
timedatectl status ; date ; date -u
Vous obtiendrez quelque chose comme suit :
Local time: jeu. 2021-10-14 16:13:41 CEST
Universal time: jeu. 2021-10-14 14:13:41 UTC
RTC time: jeu. 2021-10-14 14:13:41
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
jeu. 14 oct. 2021 16:13:41 CEST
jeu. 14 oct. 2021 14:13:41 UTC
Local time: Thu 2021-10-14 16:13:17 CEST
Universal time: Thu 2021-10-14 14:13:17 UTC
RTC time: n/a
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no
Thu 14 Oct 2021 04:13:17 PM CEST
Thu 14 Oct 2021 02:13:17 PM UTC
Et cela devrait vous permettre de bricoler quelque chose dâadapter Ă lâheure en cours.
Vous pouvez Ă©galement utiliser ce site https://www.unixtimestamp.com/ pour avoir lâheure actuelle au bon format.
Dans lâhypothĂšse dâune automatisation depuis une machine Linux ayant la bonne date/heure, vous pouvez construire la date Ă lâaide de :
date +'%Y-%m-%d %H:%M:%S %Z'
Et pour mettre à jour Ce qui vous permet de faire un truc du genre :
function update_remote_date {
local -r ip="$1"
local -r user="${2:-pi}"
echo "Locale date: $( date +'%Y-%m-%d %H:%M:%S %Z' )"
local cdate=
cdate="$( date +'%Y-%m-%d %H:%M:%S' )"
echo "Local date: ${cdate}"
ssh "${user}@${ip}" "sudo timedatectl set-ntp False ; sudo timedatectl set-time '${cdate}' ; sudo timedatectl set-ntp True ; echo 'Remote date: $( date +'%Y-%m-%d %H:%M:%S %Z' )'"
}
update_remote_date '192.168.1.86'
Pour aller un peu plus loin
-
A qui demandez-vous l'heure ?
A qui demandez-vous lâheure ?
La configuration de timedatectl ce trouve dans le fichier :
cat /etc/systemd/timesyncd.conf
Le contenu par défaut sous
Raspberry Pi OS
est :# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # Entries in this file show the compile time defaults. # You can change settings by editing this file. # Defaults can be restored by simply deleting this file. # # See timesyncd.conf(5) for details. [Time] #NTP= #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org #RootDistanceMaxSec=5 #PollIntervalMinSec=32 #PollIntervalMaxSec=2048
Il sert principalement à définir à qui la machine demande l'heure.
-
Comment c'est passé la synchronisation ?
Comment câest passĂ© la synchronisation ?
Pour afficher lâĂ©tat de la derniĂšre synchronisation, utilisez :
timedatectl timesync-status
Pour suivre ce quâil se passe :
timedatectl timesync-status --monitor
Pour voir les logs :
journalctl --unit=systemd-timesyncd.service --no-pager
኿