Régler la date et l'heure sur un serveur linux

Quand des serveurs ont besoin de communiquer entre eux, il devient vite indispensable d’utiliser la même référence de temps. Cela semble évident mais, en pratique, ce petit détail est souvent négligé. Ce qui engendre quelques désagréments plus ou moins grave, comme des scripts ne fonctionnant pas correctement, des documents écrasés par d’anciennes versions, des fichiers de log illisibles, etc… Il est pourtant simple de mettre son serveur à l'heure.

Comment lire l'heure ?

Pour vérifier l'heure de son serveur linux, on utilise la commande suivante:

date

Et pour obtenir l'heure universelle (UTC) on rajoute l'option -u

date -u

Mise à l'heure

Pour mettre le serveur à l'heure on rajoute le paramètre –set à la commande date.

date --set 21:14:37

Et si on veut modifier la date du serveur, c'est le même paramètre.

date --set 2011-10-21

Configuration du fuseau horaire

Pour configurer le fuseau horaire de son serveur squeeze, on utilise la commande suivante

dpkg-reconfigure tzconfig

Qu'est ce que le temps BIOS ?

Un serveur possède deux horloges systèmes, celle du système et celle de la carte mère (horloge BIOS). Ces deux horloges peuvent ne pas être synchrone entre elles. Cette différence peut provoquer des bugs lors du démarrage. Pour synchroniser l'horloge BIOS avec l'horloge système on utilise la commande suivante :

hwclock --systohc

Synchronisation automatique

Une horloge possède une dérive inhérente dû au quartz de la carte mère, l'horloge a tendance à se décaler de l'heure officielle(plusieurs secondes par jour pour certaines cartes mère). Pour éviter ce décalage, on utilise le protocole NTP pour synchroniser votre serveur avec un serveur de temps référence.

Pour commencer on installera les paquets ntp et ntpdate avec la commande suivante

aptitude install ntp ntpdate

Ensuite on configure NTP grâce à un éditeur de texte comme nano ou vi. La seule configuration a effectuer consiste a paramétrer les noms des serveurs de référence. Pour ma part, j'ai choisi d'utiliser les serveurs NTP du projet pool.ntp.org, ils sont fiables et ils possèdent des serveurs NTP dans beaucoup de pays. Pour la France, les serveurs NTP a utiliser sont : server 0.fr.pool.ntp.org server 1.fr.pool.ntp.org server 2.fr.pool.ntp.org

Il suffit donc de modifier le fichier /etc/ntp.conf et de remplacer les lignes correspondantes aux adresses des serveurs NTP par celles ci-dessus.

Avant de lancer le daemon il convient de régler l'heure manuellement avec la commande suivante :

ntpdate pool.ntp.org

Ensuite on met le démon NTP en route avec la commande suivante :

service ntp start

Et pour éviter quelques soucis avec CRON ou d'autres services actifs, il est conseillé de redémarrer le serveur.

Auteurs et sources