Ubuntu s'adaptera-t-il automatiquement à la seconde intercalaire à la fin de l'année (2016)?

43

La BBC rapporte:

Une seconde supplémentaire sera ajoutée aux horloges du monde à la veille du Nouvel An afin de rester en phase avec la rotation de la Terre.

Est-ce que cela signifie que je dois faire quelque chose pour que ma machine Ubuntu reste en phase avec cela ou est-ce qu'elle va s'ajuster automatiquement pour ne pas être une seconde éteinte?

Kaz Wolfe
la source
2
Vous pourriez apprécier cette vidéo (qui traite également des secondes intercalaires
Thorbjørn Ravn Andersen
1
@ ThorbjørnRavnAndersen Oh, c'est Tom Scott!
Ismael Miguel

Réponses:

34

Si votre machine Ubuntu écoute NTP et synchronise l'heure avec Internet, le système s'ajustera automatiquement à la différence d'heure.

Bien que votre ordinateur ne sache peut-être pas nécessairement qu’une seconde intercalaire s’est produite, il capte et enregistre l’événement lorsque les serveurs NTP transmettent le changement sur Internet.

Si vous ne pensez pas que la seconde supplémentaire est ajoutée, vous pouvez forcer une mise à jour à l'aide de la commande suivante:

sudo ntpdate -s pool.ntp.org

Ceci effectuera automatiquement la géolocalisation pour vous donner un serveur proche (réduisant l’erreur de latence) et Ubuntu ajustera votre fuseau horaire (ainsi, si le serveur est dans un fuseau horaire différent, tout va bien). Alternativement, vous pouvez utiliser ntp.ubuntu.com.

Notez que si vous êtes très malchanceux, aucun des serveurs de temps que vous utilisez ne gérera correctement la seconde intercalaire. C'est peu probable, mais possible. Il est conseillé de vérifier manuellement par rapport à une bonne source connue (radio analogique, éventuellement time.is ).


Alternativement, si vous utilisez une version moderne d’Ubuntu, il existe un utilitaire intégré appelé timedatectl. Par défaut, il s’exécute une fois automatiquement au démarrage. Par conséquent, un redémarrage rapide peut forcer une synchronisation si nécessaire.

Kaz Wolfe
la source
1
Au Royaume-Uni, utiliser time.nist.gov fonctionne toujours. Ubuntu ajuste ce qu’il signale pour mon fuseau horaire. Je suppose qu'il en va de même pour tous les fuseaux horaires
Tim
2
@ Tim Oui, mais la synchronisation avec un serveur aux États-Unis a une latence plus élevée = un taux d'erreur plus élevé ... cela fonctionne donc, mais le résultat final est moins précis que si vous utilisiez un serveur plus proche.
Bakuriu
1
Essayez pool.ntp.orgplutôt cela devrait toujours prendre quelque chose de relativement proche de vous.
Michael Hampton
3
Cette réponse est problématique. 1.) Si vous êtes très malchanceux, aucun des serveurs de temps que vous utiliserez ne gérera correctement le saut de seconde. C'est peu probable, mais possible. 2.) Si ntpdest en cours d'exécution, l'exécution ntpdatesimultanée le perturbera. Mieux vaut l'arrêter en premier. Mieux encore, ne cours pas ntpdatedu tout. 3.) Les serveurs de temps NIST n'ont pas besoin de trafic supplémentaire de Stack Exchange; ntp.ubuntu.comou pool.ntp.orgserait mieux. 4.) Le Royaume-Uni utilise effectivement uk.pool.ntp.org, mais pool.ntp.orgprocédera de toute façon à la géolocalisation.
Matt Nordhoff
J'en ai oublié un. 5.) Si vous utilisez ntpdatedes serveurs de temps aléatoires et que vous êtes encore très malchanceux, vous en utiliserez un qui a également échoué à gérer correctement le saut de seconde! Le pool NTP désactive ces serveurs rapidement, mais pas instantanément. Et les serveurs gouvernementaux importants ne sont pas meilleurs. (Bien que je pense que ceux du NIST étaient cette fois.)
Matt Nordhoff
17

Les secondes sont gérées automatiquement par le noyau Linux, aucun redémarrage ni synchronisation NTP n'est nécessaire pour conserver l'heure réelle. Si vous regardez dans votre journal système, vous verrez quelque chose de similaire à

[263284.397894] Clock: inserting leap second 23:59:60 UTC

Étant donné 23:59:60que l'heure Linux n'est pas valide, votre horloge atteindra 00:00:00, puis reviendra à 23:59:59. Tous les objets créés pendant cette seconde (comme les fichiers) peuvent être datés de manière incohérente.

En ce qui concerne le temps Linux (par opposition au temps réel), les secondes intercalaires n'existent pas:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200
Dmitry Grigoryev
la source
2
Mes journaux semblent confirmer cette réponse. J'ai récemment couru dmesg | grep 'leap second'sur mon ordinateur principal 16.04 et cela a été montré [1153894.866672] Clock: inserting leap second 23:59:60 UTC. Ceci, juste avec des numéros différents au début, était également indiqué sur ma machine virtuelle 16.04 minimale, à partir de mini.iso, que j'utilise pour les tests. Ce système minimal n'est pas en ntpdcours d' exécution, pas plus que l' un des packages ntpou celuiopenntpd installé.
Eliah Kagan
2
@EliahKagan Le noyau ne contient sûrement pas de liste de toutes les secondes intercalaires futures codées en dur. Le noyau a la logique d'insérer la seconde intercalaire, mais quelque chose doit lui indiquer qu'une seconde intercalaire doit être insérée. Je ne connais rien d'autre que NTP qui puisse dire au noyau d'insérer une seconde intercalaire. Notez que si le noyau a déjà reçu l’instruction d’insérer une seconde intercalaire, désinstaller NTP sans le redémarrer laissera le noyau dans un état tel qu’il insérera une seconde intercalaire.
Kasperd
1
@kasperd Je suis d'accord avec votre raisonnement général, mais je ne pense pas que NTP ait jamais été installé dans ce système, que j'ai mis en place quelques jours auparavant (bien que plus d'un jour). Deux possibilités me viennent à l’esprit. Ceci est une machine virtuelle VMware, et bien que je n’ai installé aucun pilote VMware, je pense qu’Ubuntu en a déjà. Un tel pilote aurait-il pu découvrir la seconde intercalaire de la machine hôte? En plus de cela, je suppose que NTP a été impliqué lors de l'installation, bien que je ne sois pas sûr de savoir comment cela a été conçu pour fonctionner après les redémarrages. Je pense qu’elle mini.isoa NTP et que l’installateur Debian l’utilise.
Eliah Kagan
1
@EliahKagan, je n'ai pas vérifié, mais le client ntp par défaut peut être chrony.
Carsten S
2
@CarstenS Il s'avère que systemd-timesyncd (8) synchronisait l'horloge minimale de mon système. Je n'y avais pas pensé et j'ai découvert à moitié accidentelle: j'ai grep -RPis '(?<!mou)ntp' /var/logrévélé ces 14 lignes Syslog , montrant les synchronisations horaires d'un hôte dont ntple nom est avéré . Avec le recul, il est logique que le service mystérieux que je ne savais jamais avoir faisait partie de systemd. (Au fait, bon point à propos de chrony, que je n'avais pas vérifié non plus; il n'est pas installé, cependant.)
Eliah Kagan