Archives quotidiennes :

Maintenir ses machines linux à l’heure avec ntp (exemple sur une Mandriva)

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