Activer la synchronisation de l'horloge système

14

'timedatectl' donne la sortie suivante -

                      Local time: Wed 2018-06-13 18:08:51 IST
                  Universal time: Wed 2018-06-13 12:38:51 UTC
                        RTC time: Wed 2018-06-13 12:38:51
                       Time zone: Asia/Kolkata (IST, +0530)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Comment régler l'horloge système synchronisée sur oui?

BEWARB
la source

Réponses:

10

Une façon de le faire est d'utiliser ntpce qui fonctionne toujours dans Ubuntu 18.04. Exécutez la commande suivante pour installer ntp.

sudo apt install ntp

Une fois installé, vous pouvez exécuter ntpq -ppour vous assurer qu'il fonctionne.

~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000

Ensuite, dans votre /etc/crontabfichier, ajoutez de @reboot root /usr/sbin/ntpd -nsorte que le ntpddémarre automatiquement au redémarrage du système. Utilisez votre éditeur préféré comme geditou mousepadou ce que vous aimez:

pkexec gedit /etc/crontab

Cela devrait ressembler à ceci lorsque la ligne est ajoutée:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
@reboot     root    /usr/sbin/ntpd -n
#

Redémarrez ensuite l'ordinateur pour que les paramètres prennent effet.

~$ timedatectl status
                      Local time: Wed 2018-06-13 06:55:35 MDT
                  Universal time: Wed 2018-06-13 12:55:35 UTC
                        RTC time: Wed 2018-06-13 12:55:36
                       Time zone: America/Denver (MDT, -0600)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Si vous voulez changer vos serveurs en serveurs Asia Pool , ajoutez-les dans la # Use servers from the NTP Pool Project.partie du /etc/ntp.conffichier comme ceci:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

J'espère que cela t'aides!

Terrance
la source
17

Cela peut être fait sans déployer NTP comme ceci:

sudo nano /etc/systemd/timesyncd.conf  

Modifier les détails du serveur NTP

[Time]
NTP=ur.ntp.srv
FallbackNTP=ur.fallbackntp.srv

alors

sudo systemctl daemon-reload
sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

et vous pouvez le vérifier avec

timedatectl status
Max Robbertze
la source
Vous pouvez également fournir une liste de serveurs ntp (liste séparée par des espaces) dans votre timesyncd.conffichier NTP=0.ur.ntp.srv 1.ur.ntp.srv:; Vous pouvez également fournir un pool de serveurs (pool global, ou spécifique à une région ou un pays): pool.ntp.org/zone/@
Géraud
4

Ce qui suit a fonctionné pour moi:

timedatectl set-ntp true

et alors...

systemctl restart systemd-timesyncd

Exemple:

entrez la description de l'image ici

tgogos
la source
3

Option Gui: Allez dans "Paramètres" -> "Détails" -> "Date et heure" -> Activez "Date et heure automatiques".

systemctl restart systemd-timesyncd pourrait aider

NZ Dev
la source
3

Pour ceux qui utilisent Ubuntu 18+ sur les instances AWS EC2, j'ai trouvé que cela fonctionnait de manière fantastique. Il utilise le service de synchronisation de l'heure interne d'AWS:

sudo apt install chrony
sudo nano /etc/chromny/chrony.conf

Ajoutez la ligne suivante avant toute autre entrée de serveur:

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

et alors

sudo /etc/init.d/chrony restart

La meilleure partie de cette méthode pour les instances EC2 est que vous n'avez pas à modifier les règles de votre groupe de sécurité, même si votre instance n'est pas connectée à Internet :)

La source

jtcotton63
la source
2

Un cas connexe qui n'est pas exactement celui-ci mais je veux l'ajouter quelque part:

Il est possible, comme ce fut le cas pour moi, que cette timedatectlsortie corresponde au port NTP bloqué par votre pare-feu.

Sur Ubuntu, vous pouvez explicitement autoriser les communications sur le port NTP de 123 en exécutant la commande suivante:

sudo ufw allow out from any to any port 123

Cela permettra le trafic sortant d'un service exécuté sur votre PC en utilisant n'importe quelle combinaison port / protocole réseau vers des services exécutés sur une machine distante en utilisant le port 123 avec n'importe quel protocole réseau. Cela inclut les services exécutés sur des machines distantes qui implémentent le protocole de temps réseau, qui est nécessaire pour pouvoir demander l'heure à une machine distante.

user973021
la source