Linux rdate : vérifier un serveur de temps et régler l'horloge système

rdate est une commande qui récupère l'heure depuis un serveur de temps distant pour la vérifier ou ajuster une seule fois l'horloge système. Cependant, la signification des options diffère selon chaque implémentation portant le même nom, donc vous devez d'abord consulter le manuel du programme installé. Pour une synchronisation continue de l'heure, il est préférable d'utiliser un service de synchronisation de temps comme chrony.

Différence entre rdate et la synchronisation de l'heure

rdate est un outil qui envoie une requête à un serveur distant lorsqu'il est exécuté. Même s'il règle l'horloge une fois, la commande elle-même ne continue pas de fonctionner pour corriger les déviations. Si vous utilisez des services sensibles au temps, tels que les journaux, les tâches planifiées ou la vérification des certificats, vous devez vérifier le statut de la synchronisation continue.

Les exemples ci-dessous utilisent OpenRdate comme documenté dans le manuel rdate d'Ubuntu 24.04. Les mêmes options peuvent avoir des significations différentes dans d'autres implémentations, donc n'appliquez pas ces exemples sans les modifier.

Vérification de l'installation et de la mise en œuvre

Sur Ubuntu, si vous pouvez accéder au dépôt de paquets, installez-le comme suit. Si le paquet n'est pas trouvé, vérifiez la version de la distribution et le dépôt que vous utilisez.

sudo apt update
sudo apt install rdate

Après l'installation, ouvrez le manuel pour vérifier les options du programme réel. La touche de sortie dans le manuel est q.

command -v rdate
man rdate

Dans OpenRdate, -p signifie qu'il affiche l'heure du serveur sans changer l'horloge, et -s signifie qu'il ne l'affiche pas. Dans d'autres implémentations de rdate, -s pourrait signifier qu'il règle l'horloge. Par conséquent, ne devinez pas le comportement uniquement à partir du nom de l'option. En particulier, avec OpenRdate, l'exécution sans -p peut tenter de régler l'horloge.

Vérifier seulement l'heure du serveur

La méthode de communication par défaut d'OpenRdate est le port TCP 37 du protocole de temps RFC 868. Vous ne pouvez pas supposer qu'un serveur NTP (Network Time Protocol) typique fournisse également le RFC 868. L'exemple suivant interroge le serveur NTP de la Physikalisch-Technische Bundesanstalt (PTB) en Allemagne en utilisant l'option -n d'OpenRdate et le Simple Network Time Protocol (SNTP). Vérifiez la politique d'utilisation du serveur et l'accessibilité réseau, et si nécessaire, remplacez-le par le serveur NTP spécifié par votre organisation.

rdate -n -p ptbtime1.ptb.de

Lorsqu'une réponse normale est reçue, l'heure distante est affichée et l'horloge système locale n'est pas modifiée. SNTP utilise le port UDP 123. Selon le manuel d’OpenRdate, une correction des secondes intercalaires peut être nécessaire avec un serveur NTP. Si la précision est importante, consultez l’option -c du manuel et les conditions de la source de temps. S'il n'y a pas de réponse, vérifiez l'adresse du serveur, le DNS, le pare-feu et si le service du serveur fonctionne. Vous devez d'abord vérifier le protocole que le serveur prend réellement en charge, le fait qu'il soit nommé serveur de temps ne signifie pas qu'il prend en charge tous les protocoles.

Vérifiez avant de régler l'horloge une fois

Si l'heure du système change soudainement en avant ou en arrière, cela peut affecter l'ordre des journaux, les tâches planifiées, l'authentification et les services en cours d'exécution. Pour les systèmes en opération, vérifiez la fiabilité de la source de temps et l'impact des modifications, et assurez-vous de choisir un moment approprié pour les modifications. Vérifiez également la politique opérationnelle actuelle afin d'éviter de modifier à plusieurs reprises une horloge déjà gérée par chrony ou d'autres services de synchronisation.

Dans OpenRdate, la commande suivante tente de régler l'horloge système sur l'heure du serveur SNTP sans -p. Des privilèges administratifs sont requis, et avant l'exécution, vérifiez la réponse du serveur et l'heure actuelle en utilisant la commande de requête ci-dessus. Cet exemple est destiné à OpenRdate.

date
timedatectl
sudo rdate -n ptbtime1.ptb.de
date
timedatectl

Si une commande échoue, vérifiez les erreurs et ne supposez pas qu'elle a réussi. date et timedatectl aident à vérifier l'heure locale et le fuseau horaire. Le fait que le fuseau horaire affiché à l'écran soit différent ne signifie pas nécessairement que l'heure de référence de l'horloge est incorrecte. Les changements d'heure ne peuvent pas être facilement annulés comme une requête, donc au lieu de réinitialiser aveuglément aux valeurs précédentes, synchronisez-vous avec une source de temps fiable selon les procédures opérationnelles.

Vérifiez la synchronisation continue

Exécuter rdate une seule fois ne configure pas la synchronisation continue. Dans un environnement systemd, vous pouvez vérifier le service de synchronisation et l'état de l'horloge avec la commande suivante.

timedatectl status

Le statut affiché comme actif pour NTP service et comme synchronisé pour System clock synchronized sont des statuts différents. Même si le service est en cours d'exécution, s'il ne peut pas atteindre un serveur, il peut ne pas être synchronisé. Les éléments affichés peuvent varier en fonction du système et de la version.

Sur les systèmes utilisant chrony, vous pouvez vérifier le statut et les sources de temps avec chronyc tracking et chronyc sources -v. Si vous ne pouvez pas utiliser les commandes, vérifiez l'installation, le statut du service et les paramètres de la distribution. Dans la documentation de synchronisation de l'heure chrony de Red Hat , vous pouvez voir comment vérifier les sources et le statut de synchronisation.