web-dev-qa-db-fra.com

Comment configurer Ubuntu pour synchroniser mon horloge avec un serveur de temps?

Je voudrais qu'Ubuntu synchronise automatiquement mon horloge système avec un serveur de temps au démarrage.

Cependant, mon ordinateur n’est connecté à Internet qu’après l’ouverture de ma session (plus 5 à 10 secondes pour une bonne mesure).

Comment puis-je le configurer pour faire cela?

23
Nathan Osman

Ceci est fait avec NTP, pour lequel instructions sont disponibles. En gros, vous devez installer un démon NTP. Il semble y avoir plusieurs choix mais le "standard" se trouve dans le paquetage ntpname__. Selon les instructions de la page liée,

Sudo apt-get install ntp

tout sera configuré pour se synchroniser avec le serveur NTP de Ubuntu.

EDIT: j'ai raté "au démarrage". Il est généralement recommandé d'utiliser ntpd pour obtenir une synchronisation continue entre votre système et le serveur, mais si vous ne voulez vraiment effectuer qu'une synchronisation, la réponse de mfisch semble être ce que vous recherchez.

32
David Z

Si vous allez dans "Système-> Administration-> Heure et date", vous obtiendrez une interface graphique pour définir la date et l'heure.

Une option est fournie pour l'utilisation des serveurs de temps. Si vous le cochez et que NTP n'est pas installé, il vous sera demandé si vous souhaitez l'installer. Cliquez simplement sur "oui" et laissez-le faire son travail :)

9
Little Jawa

Vous pouvez le faire en utilisant at et ntpdate. at est probablement déjà installé, mais ntpdate n'est peut-être pas. (apt-get install ntpdate).

Commencez par créer un petit script qui exécute ntpdate, appelons-le update_time.sh.

#!/bin/bash
ntpdate pool.ntp.org

Dans votre fichier .bash_login (que vous devrez peut-être créer), ajoutez ceci:

at -f ~/update_time.sh now + 1 minute

Cela devrait faire ce que vous voulez. Vous pouvez changer le délai que at utilise pour être 5 minutes, 10 minutes, etc.

EDIT: Je viens de me rendre compte que vous devez être root pour exécuter ntpdate. Vous devez définir le bit SUID sur le script update_time.sh que j'ai mentionné. Vous pouvez le faire en exécutant ceci à partir de la commande (ne doit être exécuté qu'une seule fois):

Sudo chmod 4711 update_time.sh
Sudo chown root update_time.sh
6
mfisch

Depuis Ubuntu 16.04, timedatectl/timesyncd (qui fait partie de systemd) remplace la majeure partie de ntpdate/ntp. Voir Synchronisation de l'heure .

Vous devrez peut-être activer la synchronisation de l'heure à l'aide de:

$ Sudo timedatectl set-ntp on

Si vous voulez utiliser chrony:

  • Si vous avez besoin d’une synchronisation ponctuelle, utilisez: $ chronyd -q

  • Si vous souhaitez une vérification ponctuelle de l'heure, sans régler l'heure, utilisez: $ chronyd -Q

  • Pour une synchronisation continue, la solution recommandée est chrony:

chrony (d)

Le démon NTP chronyd calcule la dérive et le décalage de votre horloge système et les ajuste en permanence. Il n'y a donc aucune correction importante qui pourrait entraîner des journaux incohérents, par exemple. Le coût est un peu de puissance de traitement et de mémoire, mais pour un serveur moderne, cela est généralement négligeable. Installation

Pour installer chrony, à partir d'un terminal, entrez:

$ Sudo apt install chrony

Vous devrez peut-être aussi activer

Sudo timedatectl set-ntp on

Mise à jour: Une autre méthode, si cela ne fonctionne pas, consiste à définir un travail cron pour qu'il exécute $ chronyd -q

0
JBaczuk