Quand il s’agit de conserver nos machines Linux (ou même Windows) à l’heure, il y a toujours plusieurs solutions. La première est de le faire manuellement avec date ou ntpdate par exemple.
date MMJJhhmmAAAA
MM = mois sur deux chiffres (01 à 12)
JJ = jour du mois sur deux chiffres (01 à 31)
hh = heures sur deux chiffres (00 à 24)
mm = minutes sur deux chiffres (00 à 59)
AAAA = année sur quatre chiffres
exemple : date 032112352010
Cette première solution est plutôt longue et fastidieuse, de plus elle favorise les risques d’erreur par une saisie manuelle. On peut ensuite demande à se synchronise avec un serveur de temps. Pour cela il faudra installer ntp-client ( urpmi ntp-client )
[root@srv-test ~]# ntpdate fr.pool.ntp.org
21 Mar 16:55:50 ntpdate[3392]: step time server 193.55.167.1 offset -6335.455525 sec
[root@srv-test ~]#
La commande ntpdate permet de synchroniser une machine avec un serveur de temps sur Internet. C’est déjà un plus mais cela reste toujours manuel. Il est possible de l’automatiser en rajoutant une tâche planifiée dans la crontab, afin que cela tourne une fois par jour par exemple.
0 1 * * * ntpdate fr.pool.ntp.org >> /root/ntpd.sh.log
Un complément d’information car voici deux fois que j’utilise une URL sans l’avoir expliquée. Il existe un projet en ligne pour un ensemble de serveurs de temps qui se nomme NTP POOL PROJECT. On peut y trouver des listes de serveurs de temps en ligne pour se synchroniser pour l’ensemble des pays, et donc pour la France aussi : pool zone France.
Nous venons de voir comment réaliser une synchronisation simple, déclenchée à un instant « t », mais il peut-être intéressant d’avoir une synchronisation permanente avec la présence d’un serveur de temps sur notre machine ou dans notre réseau privé. Pour cela il nous faut installer ntp ( urpmi ntp ) et ensuite modifier le fichier de configuration :
vi /etc/ntp.conf
On doit y trouver ceci les lignes suivantes :
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
Nous allons les remplacer par les lignes suivantes :
server fr.pool.ntp.org prefer
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
server 3.fr.pool.ntp.org
Le paramètre « prefer » ici utilisé permet de définir le serveur par défaut, celui qui faudra utiliser en premier. Une fois ce paramètre enregistré il nous suffit de démarrer le service ntp.
service ntpd start
Il est possible qu’il ne se relance pas en cas de redémarrage machine, pour cela vérifier la liste des services qui sont planifiés au démarrage.
chkconfig –list
Pour passer ntpd en démarrage automatique, utilisez la commande suivante :
chkconfig –level 2345 ntpd on
Maintenant que notre service tourne, nous pouvons le vérifier avec la commande ntpq -p :
[root@srv-test ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) .LOCL. 10 l – 64 0 0.000 0.000 0.001
ks35603.kimsufi .INIT. 16 u – 64 0 0.000 0.000 0.001
ns1.azuria.net .INIT. 16 u – 64 0 0.000 0.000 0.001
digi00161.digic .INIT. 16 u – 64 0 0.000 0.000 0.001
81.19.16.225 .INIT. 16 u – 64 0 0.000 0.000 0.001
ns.e-madeinfran 192.93.2.20 2 u 3 64 1 42.936 -176568 0.001
[root@srv-test ~]#
Il est possible, comme dans l’exemple ci-dessus, d’avoir des INIT dans la deuxième colonne. Il suffit d’attendre un peu pour les voir disparaitre. Au fil du temps qui va passer, les valeurs de la colonne « reach » vont augmenter. La connexion est considérée comme stable quand vous aurez d’affiché 377.
[root@srv-test ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) .LOCL. 10 l 37 64 377 0.000 0.000 0.001
*ntp.univ-poitie 195.34.89.227 3 u 284 1024 377 47.650 -1.037 1.482
+ntp.univ-angers 195.220.94.163 2 u 196 1024 377 50.958 4.429 1.011
+sd-16014.dedibo 213.162.48.10 3 u 130 1024 377 40.630 6.772 2.567
+diane.ensma.fr 192.93.2.20 2 u 198 1024 377 52.104 2.234 1.397
+ddb3.europeacon 193.204.114.232 2 u 164 1024 377 36.599 4.849 41.804
[root@srv-test ~]#
La synchronisation n’est pas immédiate et peut prendre quelques minutes. Le serveur précédé d’une astérisque (*) est celui utilisé, ceux précédés d’un plus (+) sont les potentiels, ceux précédés d’un moins (-) seront retirés et ceux précédés d’un espace sont soit inaccessible, soit trop éloignés. Et voila votre machine ou serveur est maintenant synchronisé avec un serveur de temps et il devrait le rester tant que le service tournera. Il peut-être envisagé de se servir d’une machine synchronisée pour servir de serveur de temps au sein du réseau directement par la suite. Une configuration plus poussée peut-être envisagée dans ce cadre (je verrais si je rédige un nouvel article ultérieurement, mais en attendant vous pouvez consulter l’un des deux liens ci-dessous qui donne des procédures légèrement différentes, dont une sur nicolargo qui prend en compte plus de paramètres.
– Installation d’un serveur NTP sous Ubuntu sur blog.nicolargo.com
– Mettre vos serveurs à la bonne heure avec NTP sur system-Linux.eu