Comment Ubuntu synchronise-t-il l'heure sans ntp?

39

En cliquant sur "Paramètres système -> Heure et date -> Automatiquement à partir d'Internet", je peux synchroniser l'heure à partir d'Internet.

Cependant, je constate que je n'ai pas de ntpddémon (il n'est même pas installé). Alors, comment fonctionne la synchronisation?

n3v3rm03
la source
6
Notez que cette interface est, à mon humble avis, trompeuse. Il doit s'agir d'un bouton et non d'un commutateur, car il déclenche une action ponctuelle à l' aide de ntpdate, vous devez l'installer manuellement ntppour que le temps de synchronisation continue avec Internet. Je l'ai signalé dans bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…
Rmano le
Je ne suis pas sûr que ce soit trompeur. J'avais l'impression que ntpdate était exécuté une fois à chaque démarrage, sauf si cette option était désactivée. Quelqu'un peut-il confirmer?
thomasrutter
sur Kubuntu 16.04, le widget horloge ne montre même pas l' Automatically from the Internetoption ou quoi que ce soit lié.
kmonsoor

Réponses:

38

Ceci est fait en synchronisant avec l' ntpdateoutil.

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

Vous pouvez le faire avec

sudo ntpdate TIME-SERVER

Les listes TIME-SERVER peuvent être créées ici

Maythux
la source
6
mais la question est, ntpdate n'est pas installé par défaut sur Ubuntu, alors comment Ubuntu synchronise-t-il jamais l'heure?
John Allard le
2
Remarque: cette réponse acceptée est très obsolète. Timedatectl est utilisé à la place de ntpdate sur les versions récentes d’Ubuntu (16.04+). timedatectl contrôle le service timesyncd de systemd.
Corey Goldberg
Oui, cette réponse est hors sujet. Ce n'est pas "comment synchroniser l'heure sans ntpd + ntpq", mais "Comment UBUNTU le fait sans aucun des éléments ci-dessus (ntpdate / ntpq). J'ai trouvé cette question juste après avoir remarqué que mon horloge était synchronisée et je m'attendais à ce qu'elle soit éteinte de quelques dizaines de secondes au moins (Ubuntu 18.04). Je me souviens aussi de l'enfer qu'est le NTPd, quand il refuse de synchroniser l'heure "trop ​​loin", etc. Et maintenant - l'horloge est synchronisée! Magique.
Tomasz Gandor
21

Ubuntu se synchronise avec l' ntpdateutilitaire une fois à chaque fois que la connexion réseau est établie (ce qui se produit généralement lorsque vous démarrez).

Cet utilitaire est installé par défaut, mais ne s'exécute que lorsque Ubuntu l'appelle et ne reste pas exécuté en arrière-plan en tant que démon.

L'installation du ntppackage installe le démon NTP. Le démon ntp permet à l'heure d'être synchronisée en permanence pendant l'exécution du système.


Mise à jour : dans les versions récentes d'Ubuntu (par exemple, 16.04) ntpdateest remplacé par timedatectl, qui se synchronise une fois au démarrage et lorsqu'un réseau apparaît, mais ne continue pas à fonctionner à d'autres moments. Voir https://help.ubuntu.com/lts/serverguide/NTP.html pour plus d'informations.

thomasrutter
la source
4
Ce n'est pas à chaque démarrage, en soi; suivez dpkg-query --listfiles ntpdateà /etc/network/if-up.d/ntpdate.
Mars
1
Ah, merci, alors je suppose que c'est chaque fois que l'interface réseau apparaît, ce qui ne sera pas nécessairement chaque démarrage pour tout le monde.
thomasrutter
ah tu es sûr que c'est installé par défaut? Je suis assis ici sur une nouvelle instance de serveur fessante Ubuntu 16.04 et aucun util ntpdate n'est installé.
John Allard le
ntpdate a été installé par défaut en 14.04 mais plus en 16.04, il est maintenant considéré comme obsolète timedatectlet fonctionne de la même manière. Il est installé par défaut et se synchronise une fois au démarrage, mais aussi lorsqu'un réseau apparaît.
thomasrutter
12

Pour ceux d’entre vous avec la version 16.04, la synchronisation du temps LTS semble être gérée spécifiquement par sytemd "timedatectl"

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Config est

/etc/systemd/timesyncd.conf

Plus d'infos ici: Synchronisation de l'heure avec NTP ET timedatectl

MysticRyuujin
la source
1
C'est la meilleure réponse pour le moment. Le reste est pratiquement hors sujet (sauf les édités, qui mentionnent systemd-timedatectl).
Tomasz Gandor
2

Notez également qu’il est tout à fait possible qu’il existe une interface frontale pour un service qui n’est pas installé.

Vous pouvez modifier les paramètres de cette interface graphique à tout moment, mais si le service qui exécute les tâches n'est pas installé, rien ne se passera.

Notez cependant que je pense que le "commutateur" est valide car il lui dit de faire la mise à jour ponctuelle à chaque démarrage. (ou ne pas le faire).

À moins qu'il ne s'agisse d'un système non connecté au réseau ou qu'il existe une autre raison primordiale de NE PAS avoir son heure définie pour qu'elle corresponde à l'heure "standard", je vous encourage vivement à installer ntpd, à bien la configurer et à l'exécuter.

sdfgsdfg
la source
1

Voir: https://help.ubuntu.com/community/UbuntuTime

Ubuntu est livré avec ntpdate en standard et l’exécutera une fois au démarrage pour configurer votre temps en fonction du serveur NTP d’Ubuntu. Cependant, l'horloge d'un système est susceptible de dériver considérablement entre les redémarrages si le délai entre les redémarrages est long. Dans ce cas, il est logique de corriger le temps de temps en temps. Le moyen le plus simple de le faire est d’obtenir Cron pour l’exécuter tous les jours.

ntpdate ntp.ubuntu.com
Fadi
la source
Ou vous pouvez utiliser ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ) pour maintenir la synchronisation.
Gaurav
Pour votre information, la page que vous avez référée n’a pas été mise à jour pour le 16.04, elle n’est donc pas très utile.
kmonsoor
1

Pour une raison quelconque, le 16 avril, la réponse de Maythux ne fonctionne pas tout de suite.

Mais prendre les devants à partir de là, cela a fonctionné pour moi.

$ sudo ntpdate-debian

Veuillez noter que cela nécessite sudoévidemment des privilèges.

Sous le capot, il utilise un ntpdateoutil, ne différant que par le fichier de configuration.

ntpdate-debian est identique à ntpdate(8) sauf qu'il utilise la configuration /etc/default/ntpdatepar défaut. ntpdate définit la date et l'heure locales en interrogeant les serveurs NTP (Network Time Protocol).

kmonsoor
la source
16.04 utilise systemd alors je pense qu'il devrait avoir une nouvelle commande équivalente à utiliser.
Rinzwind
@Rinzwind, c'était fantastique, bien sûr. Malheureusement, la soi - disant page principale du wiki Ubuntu n’est pas mise à jour pour la version 16.04. Un msg disant "Cet article doit être mis à jour pour inclure les dernières versions d'Ubuntu".
kmonsoor
Au moins dans 14.04 sudo ntpdate-debianfait la même chose que sudo ntpdate ntp.ubuntu.com. Ce qui est étrange, c’est pourquoi ont-ils choisi et peaufiné ce paquet dans Debian quand nous le lisons is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaultet catting ce fichier que nous lisons NTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"???
Utile
1

Eh bien, les dernières versions d'Ubuntu le font souvent en utilisant chrony, qui est une implémentation alternative de ntp avec quelques différences:

  1. Certaines des fonctionnalités ntp les plus rarement utilisées ne sont pas implémentées
  2. Il tente de bien gérer la situation dans laquelle vous avez un accès réseau intermittent. Une fois connecté, il synchronise l’horloge locale et surveille la vitesse à laquelle il dérive. Lorsqu'il est déconnecté, il utilise l'horloge locale, mais ajuste l'heure pour tenir compte de la dérive habituelle.

Voir https://chrony.tuxfamily.org/ pour plus d'informations.

Mark Phillips
la source