L'horloge d'Ubuntu est éteinte d'environ une demi-heure:
Où puis-je même commencer à résoudre ce problème?
Il serait réglé "automatiquement depuis Internet". Comment puis-je vérifier que "Internet" sait quelle heure il est?
Détails
Ubuntu a eu beaucoup de temps pour communiquer avec Internet:
$ date; uptime
Fri May 18 05:56:00 PDT 2012
05:56:00 up 12 days, 10:48, 2 users, load average: 0.61, 0.96, 1.15
Ce serveur de temps que j'ai trouvé via une recherche sur le Web semble connaître l'heure correcte:
$ date; ntpdate -q north-america.pool.ntp.org
Fri May 18 05:56:09 PDT 2012
server 208.38.65.37, stratum 2, offset 1752.625337, delay 0.10558
server 46.166.138.172, stratum 2, offset 1752.648597, delay 0.10629
server 205.189.158.228, stratum 3, offset 1752.672466, delay 0.11829
18 May 05:56:18 ntpdate[29752]: step time server 208.38.65.37 offset 1752.625337 sec
Aucune erreur liée au NTP n'a été signalée:
$ grep -ic ntp /var/log/syslog
0
Après le redémarrage, l'heure a été automatiquement corrigée et les informations suivantes sont apparues dans /var/log/syslog
:
May 18 17:58:12 aux ntpdate[1891]: step time server 91.189.94.4 offset 1838.497277 sec
Un journal du décalage rapporté par ntpdate révèle que l'horloge dérive d'environ 9 secondes toutes les heures:
$ while true; do ntpdate-debian -q | tail -n 1 >> 'drift.log'; sleep 16m; done
^C
$ r -e '
attach(read.table("drift.log", header=FALSE))
clock <- as.POSIXct(paste(V1, V2, V3), format="%d %b %H:%M:%S")
fit <- lm(V10~clock)
png("drift.png")
plot(clock, V10, xlab="Clock time", ylab="Time server offset (s)")
abline(fit)
mtext(sprintf("Drift rate: %.2f s/hr", fit$coefficients[[2]]*3600))
'
Réponses:
ntp réussit bien à garder votre ordinateur réglé au bon moment, et le fait sans jamais l'exécuter à l'envers - ce qui serait une mauvaise chose pour certains programmes que vous pourriez exécuter.
Il règle non seulement l'heure, mais il ajuste continuellement la façon dont votre ordinateur garde l'heure afin que son heure ne soit pas juste à un instant donné, mais reste proche du temps réel (en quelques dizaines de millisecondes, pas en dizaines de minutes) . Il ajuste à la fois la phase (le temps) et le taux (à quelle vitesse l'horloge "tique"). ntp ne fait jamais tourner l'horloge en arrière. Il peut prendre un certain temps pour déterminer la vitesse à laquelle le chronomètre doit être activé après un redémarrage, donc ntp garde une trace de la dérive dans un fichier appelé /var/lib/ntp/ntp.drift. Puisque vous n'exécutez pas ntp, rien de tout cela ne se produit.
ntp n'est pas aussi populaire qu'il l'était autrefois car les ordinateurs portables et de bureau en veille et les machines virtuelles l'empêchent de fonctionner une partie du temps. Il est conçu pour s'exécuter de temps en temps selon son propre calendrier sur un ordinateur qui fonctionne tout le temps et dans le monde réel où le temps est continu. C'est probablement pourquoi il n'est pas installé par défaut sur le poste de travail moderne. [Pour Vmware, voir ceci]
Au lieu de cela, ntpdate est exécuté lorsque l'interface réseau est activée . Lorsqu'un ordinateur portable en veille est réveillé, il rétablit la connexion réseau, ntpdate est exécuté et l'heure est à nouveau correcte. Si l'horloge matérielle de la machine est assez précise et que le réseau monte et descend assez souvent, c'est généralement assez bon pour la plupart des gens.
Pour une raison quelconque, stock ntpdate ne fonctionne pas toujours. Utilisez plutôt ntpdate-debian dans ce cas. La syntaxe du for.mer est quelque chose comme ntpdate ntp.ubuntu.com , pour ce dernier, c'est ntpdate-debian
En l'absence d'une de ces choses, alors ntp est une meilleure façon de garder le temps.
Les systèmes sont conçus pour prendre une interruption de minuterie de temps en temps et mettre à jour son idée de l'heure à chaque interruption. Tant que le minuteur matériel fonctionne selon les spécifications. le temps ne dérive pas trop. Si la minuterie matérielle ne l'est pas, l'heure dérivera davantage (toutes ces horloges en dériveront, pour la même raison que votre montre-bracelet ou votre horloge contrôlée par batterie. Les horloges branchées sur le mur sont synchronisées avec l'heure par la fréquence et la phase conservées par votre compagnie d'électricité).
La plupart des minuteries informatiques sont contrôlées par un circuit oscillateur contrôlé par cristal sur ses circuits intégrés. Malgré le cristal, ils fonctionnent plus vite et plus lentement en fonction de l'environnement, principalement de la température. À moins que vous n'ayez installé un logiciel de synchronisation temporelle que nous ne connaissons pas, je dirais que l'horloge de votre système est hors spécification.
Si vous deviez exécuter ntp pendant un jour ou deux, il stockerait des informations dans /var/lib/ntp/ntp.drift qui indiqueraient combien il faudrait pour ajuster la vitesse à laquelle votre système d'exploitation avance par interruption afin de faire correspondre votre fréquence d'horloge matérielle avec le temps réel qu'il obtient sur Internet. Garder le fichier identique et juste démarrer et arrêter ntp après une minute après cela (en supposant que vous gardez le fichier /var/lib/ntp/ntp.drift inchangé) pourrait faire beaucoup pour corriger cela si le biais d'horloge ntp définit reste après ntp se termine. Je ne suis pas sûr de ce détail.
Je soupçonne que la valeur que ntp stockerait dans /var/lib/ntp/ntp.drift est très différente de la mienne.
Si cette machine continue de fonctionner tout le temps, cependant, la meilleure chose à faire est d'installer ntp et de le laisser faire. Voir les autres réponses pour plus de détails sur la façon de choisir le bon moment avant de le démarrer. Je lance ntp sur mon bureau et ntpdate sur mon ordinateur portable.
Une alternative intéressante possible, adjtimex, est mentionnée dans cette réponse par nealmcb.
Si votre système ne fonctionne pas tout le temps, l'exécution de ntpdate au démarrage semble être une bonne option.
Attention, certains logiciels peuvent paniquer si le temps de l'ordinateur recule. L'exécution de ntpdate après le démarrage peut provoquer ce problème .
Un problème, cela peut être un problème: Si je me souviens bien, ntp s'attend à ce que le temps ne soit pas trop éloigné. Si c'est le cas, en essayant d'agir de manière conservatrice, ntp n'ajustera pas du tout l'heure. Si vous êtes dans cette situation, il est logique de faire les deux: exécutez ntpdate au démarrage pour obtenir l'heure initialisée au bon moment, puis laissez ntp s'exécuter pour qu'il continue à fonctionner pour fournir un chronométrage précis. En particulier, une mauvaise batterie de la carte mère peut provoquer cette erreur, tout comme le démarrage d'un ordinateur éteint depuis longtemps.
la source
man rtc
page dit: "Les RTC ne doivent pas être confondus avec l'horloge système, qui est une horloge logicielle maintenue par le noyau et utilisée pour implémenter gettimeofday (2) ..." Je ne sais pas si l'horloge système est liée à l'horloge FSB . En regardant la configuration du noyau, le dernier noyau Ubuntu précis i386 a mis à jour l'horloge système à 250 Hz. Merci pour le commentaire!- Le temps n'est généralement synchronisé qu'une seule fois à chaque démarrage ou à la sortie du sommeil
Non, le serveur de temps d'Ubuntu est correct et il règle automatiquement l'heure à partir de celui-ci.
Le problème est qu'il ne se produit généralement qu'une seule fois à chaque démarrage (ou pour être plus précis, à chaque fois qu'une interface réseau est mise en place - que ce soit à partir d'un arrêt, d'une mise en veille ou d'une mise en veille prolongée). En fonction de votre temps de disponibilité, il est sûr de dire qu'il n'a pas été synchronisé depuis plus d'une semaine. Et votre horloge système fonctionne un peu rapidement pour une raison quelconque.
- Configurez une
cron
tâche horaire à synchroniser si vous ne redémarrez pas souvent ou si votre serveur / bureau ne se met jamais en veilleVotre meilleur pari est de mettre en place un cron-job, je dirais toutes les heures si vous voulez du temps super précis. La façon la plus simple de le faire est:
sudo editor /etc/cron.hourly/ntpsync
Ajoutez les lignes suivantes:
sudo chmod +x /etc/cron.hourly/ntpsync
Vous pouvez le mettre à la
/etc/cron.daily
place si vous le souhaitez, une fois par jour.la source
Cela peut se produire si vous avez installé le démon de temps ntp et que l'heure sur votre machine est trop éloignée pour être corrigée rapidement.
Pour le réparer, ouvrez un terminal et faites
Ce que cela fait:
Si vous n'avez pas installé ntp, faites-le avec
Mise à jour: L'utilisation de ntpdate dans un travail cron, comme cela a été recommandé ici, conduit à des problèmes subtils.
Le ntpdate fera «sauter» l'heure toutes les heures environ. L'utilisation de ntp évite ce problème, car il ajustera l'heure en décalant l'horloge. De plus, bien que la sélection d'un serveur ntp dans le quartier donne une précision encore plus élevée, ce n'est pas nécessaire. Le fichier de configuration ntp par défaut contient plusieurs serveurs et le serveur compense automatiquement tout retard.
Conclusion: - utilisez ntp - si vous êtes loin, arrêtez ntp, exécutez ntpdate une fois et redémarrez ntp.
la source
/etc/init.d/ntp
n'existe pas. Il s'agit d'une installation assez récente d'Ubuntu 12.04 et je n'ai délibérément rien changé au temps.J'ai eu un problème similaire et il a été causé par quelque chose dans le pare-feu. À la fin, j'ai ajouté le travail cron horaire mais j'ai ajouté le
-u
argument pourntpdate
qu'il utilise un port standard non.Mon problème était dû au fait qu'Ubuntu ne vérifiait pas réellement si cela
ntpdate
fonctionnait mais supposait automatiquement que cela fonctionnerait.la source