Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1625

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Utiliser le programme 'clock'</TITLE>
</HEAD>
<BODY>
<H1>2. <A NAME="s2"></A>Utiliser le programme 'clock'</H1>
<P>
<A HREF="Clock.html#toc2">Contenu de cette section</A></P>

<P>Tout ce que vous devez savoir est dans la page de manuel clock(8), mais ce 
mini-HOWTO va vous guider pas &agrave; pas.</P>
<P><EM>Note</EM>
Vous devez &ecirc;tre root pour ex&eacute;cuter 'clock', ou n'importe quel autre 
programme qui modifie soit le temps syst&egrave;me soit l'horloge CMOS.</P>
<P></P>
<H2>2.1 <A NAME="ss2.1"></A> V&eacute;rifier votre installation      </H2>

<P>Cherchez dans vos fichiers de d&eacute;marrage une commande du style 
'clock -a' ou 'clock -ua'. Selon la distribution que vous utilisez, cela 
peut &ecirc;tre dans <CODE>/etc/rc.local</CODE>, <CODE>/etc/rc.d/rc.sysinit</CODE>, ou dans un endroit 
similaire.</P>
<P></P>
<P>Si c'est 'clock -s' ou 'clock -us', changez le 's' en 'a', puis 
regardez si vous avez un fichier <CODE>/etc/adjtime</CODE>, ne contenant qu'une 
ligne ressemblant &agrave; quelque chose comme cela :
<BLOCKQUOTE><CODE>
<PRE>
       0.000000 842214901 0.000000
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Ces nombres sont le facteur de correction (en secondes par jour), le 
moment o&ugrave; l'horloge a &eacute;t&eacute; r&eacute;ajust&eacute;e la derni&egrave;re fois (en secondes depuis 
le 1er janvier 1970), et les secondes partielles qui ont &eacute;t&eacute; arrondies 
la derni&egrave;re fois. Si vous n'avez pas ce fichier, connectez vous en tant que root et 
cr&eacute;ez le, avec une seule ligne qui ressemble &agrave; (que des z&eacute;ros) :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
         0.0 0 0.0
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P></P>
<P>Ensuite ex&eacute;cutez 'clock -a' ou 'clock -ua' manuellement &agrave; partir du 
shell pour mettre &agrave; jour le deuxi&egrave;me nombre (utiliser le 'u' si votre 
horloge est configur&eacute;e en Universel plut&ocirc;t que temps local).</P>
<P></P>

<H2>2.2 <A NAME="ss2.2"></A> Mesurer le taux de d&eacute;rive temporelle de votre horloge      </H2>

<P></P>
<P>Pour commencer, vous devez connaitre l'heure qu'il est :-). Votre temps 
local du jour peut ou peut ne pas &ecirc;tre exact. Ma m&eacute;thode pr&eacute;f&eacute;r&eacute;e est 
d'appeler l'horloge parlante au 3699 (c'est un appel gratuit). Si vous 
avez acc&eacute;s &agrave; un serveur r&eacute;seau de temps, vous pouvez utiliser le 
programme ntpdate du progiciel xntpd (utiliser le param&egrave;tre
-b pour emp&ecirc;cher le noyau de cafouiller l'horloge CMOS). Sinon utiliser 
'date -s hh:mm:ss' pour mettre l'heure syst&egrave;me &agrave; la main, puis 
'clock -w' pour mettre &agrave; jour l'horloge CMOS &agrave; partir de l'heure du 
syst&egrave;me. Vous devrez vous rappeler la derni&egrave;re fois que vous avez 
chang&eacute; l'heure, donc &eacute;crivez la date quelque part o&ugrave; vous ne la perdrez 
pas. Si vous avez utilis&eacute; ntpdate, faire 'date +%s' et &eacute;crire le nombre 
de secondes depuis le 1er janvier 1970.</P>
<P></P>
<P>Puis revenez quelques jours ou semaines apr&egrave;s et regardez de combien l'horloge a
d&eacute;riv&eacute;. Si vous mettez l'horloge &agrave; jour &agrave; la main, je vous recommanderais d'attendre
au moins deux semaines, et de seulement calculer le taux de d&eacute;rive le plus proche d'un
dixi&egrave;me de secondes par jour. Apr&egrave;s plusieurs mois vous pourrez obtenir le plus proche
d'un centi&egrave;me de secondes par jour (quelques personnes affirment &ecirc;tre encore plus pr&eacute;cis
mais je resterais prudent dans ce cas). Si vous utilisez ntpdate, vous n'aurez pas
&agrave; attendre si longtemps, mais dans tous les cas vous pourrez toujours affiner plus tard.</P>
<P></P>
<P>Vous pouvez avoir cron qui ex&eacute;cute 'clock -a' &agrave; des moments r&eacute;guliers pour garder 
le temps syst&egrave;me en accord avec le temps (corrig&eacute;) CMOS. Cette commande sera aussi
ex&eacute;cut&eacute;e &agrave; partir de vos fichiers de d&eacute;marrage &agrave; chaque fois que vous relancerez le
syst&egrave;me, ainsi si vous le faites souvent (comme quelques uns d'entre nous le font),
cela peut suffire &agrave; vos besoins.</P>
<P></P>
<P>Remarquez que certains programmes peuvent se plaindrent si le syst&egrave;me saute plus d'une
seconde &agrave; la fois, ou s'il retranche du temps. Si vous avez ce probl&egrave;me, vous pouvez
utiliser xntpd ou ntpdate pour corriger le temps plus graduellement.</P>
<P></P>

<H2>2.3 <A NAME="ss2.3"></A> Exemple      </H2>

<H3>Mettre &agrave; jour le temps       </H3>

<P>Se connecter root. Appeler le 3699 (vocal), &eacute;couter l'annonce de l'heure.
Puis taper:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
         date -s hh:mm:ss
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Mais ne tapez Entr&eacute;e que lorsque vous entendez le bip. (vous pouvez 
utiliser 'ntpdate' ici plut&ocirc;t que 'date', et &eacute;viter l'appel t&eacute;l&eacute;phonique).
Cela met &agrave; jour le 'temps noyau'. Puis taper :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
       clock -w
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Cela met &agrave; jour l'horloge CMOS pour correspondre au temps noyau. 
Puis taper:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
       date +%j
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>(ou 'date +%s' si vous utilisez 'ntpdate', plut&ocirc;t que 'date' ci-dessus)
et &eacute;crire le nombre qu'il vous donne pour la prochaine fois.</P>
<P></P>
<H3>Pour remettre &agrave; jour le temps et v&eacute;rifier le taux de d&eacute;rive        </H3>

<P>Trouver la date que vous avez &eacute;crit la derni&egrave;re fois. Se connecter 
root puis taper:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
           clock -a
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Cela met &agrave; jour le temps noyau qui correspond ainsi au temps CMOS. 
Appeler le 3699 (vocal), &eacute;couter l'annonce. Puis taper :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
           date
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P></P>
<P>et appuyer sur Entr&eacute;e quand vous entendez le signal sonore, mais 
alors que vous attendez, notez le temps annonc&eacute;, et ne raccrochez 
pas de suite. Cela vous dit &agrave; quel temps votre machine pensait &ecirc;tre, 
quand cela aurait du &ecirc;tre exact &agrave; la minute. Maintenant entrez :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
           date hh:mm:00
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P></P>
<P>utilisant la minute *apr&egrave;s* celle qui vient juste d'&ecirc;tre annonc&eacute;e, et  
appuyez sur entr&eacute;e quand vous entendez le signal sonore &agrave; nouveau 
(maintenant vous pouvez raccrocher). Pour hh utiliser le temps local. 
Cela met &agrave; jour le 'temps noyau'.</P>
<P>Puis taper :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
            clock -w
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>qui &eacute;crit le nouveau (correct) temps dans l'horloge CMOS. 
Maintenant tapez :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
            date +%j
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>(ou 'date +%s' si c'est ce que vous avez utilis&eacute; avant).</P>
<P>Vous avez maintenant trois nombres (deux dates et une heure) qui 
vont vous permettre de calculer la d&eacute;rive de temps.</P>
<P></P>
<H3>Calculer le facteur de correction       </H3>

<P>quand vous ex&eacute;cutez 'date' &agrave; l'instant, est-ce que votre machine 
&eacute;tait en avance ou en retard ? Si elle avan&ccedil;ait, vous aurez &agrave; retrancher 
quelques secondes, alors &eacute;crivez le comme un nombre n&eacute;gatif. Si elle 
retardait, vous aurez &agrave; ajouter quelques secondes, alors &eacute;crivez le 
comme positif.</P>
<P></P>
<P>Maintenant soustrayez les deux dates. Si vous avez utilis&eacute; 'date +%j', 
les nombres repr&eacute;sentent le jour de l'ann&eacute;e (1-365, ou 1-366 pour les 
ann&eacute;es bissextiles).  Si vous avez pass&eacute; le 1er janvier depuis votre 
derni&egrave;re modification horaire vous aurez &agrave; ajouter 365 (ou 366) au 
deuxi&egrave;me nombre. Si vous avez utilis&eacute; 'date +%s' alors votre nombre 
est en secondes, et vous aurez &agrave; le diviser par 86400 pour obtenir
des jours.</P>
<P></P>
<P>Si vous avez d&eacute;j&agrave; un facteur de correction dans <CODE>/etc/adjtime</CODE>, vous 
aurez &agrave; tenir compte du nombre de secondes que vous avez d&eacute;j&agrave; corrig&eacute;. 
Si vous avez trop corrig&eacute;, ce nombre aura le signe oppos&eacute; &agrave; celui que 
vous venez juste de mesurer; si vous n'avez pas assez corrig&eacute; il aura 
le m&ecirc;me signe.  Multipliez l'ancien facteur de correction par le 
nombre de jour, et ensuite ajouter le nouveau nombre de secondes 
(addition sign&eacute;e  -- si les deux nombres ont le m&ecirc;me signe, vous 
obtiendrez un nombre plus grand, s'ils ont des signes oppos&eacute;s
vous aurez un nombre plus petit).</P>
<P></P>
<P>Puis divisez le nombre total de secondes par le nombre de jours pour 
obtenir le nouveau facteur de correction, et le mettre dans 
<CODE>/etc/adjtime</CODE> &agrave; la place de l'ancien. Conservez la nouvelle date 
(en secondes par jour) pour la prochaine fois.</P>
<P></P>
<P>Voici &agrave; quoi ressemble mon <CODE>/etc/adjtime</CODE> :</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
            -9.600000 845082716 -0.250655
      
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P><EM>Note</EM>
(on remarque que 9.6 secondes par jour c'est presque 5 minutes par mois !)</P>
<P></P>

<H2>2.4 <A NAME="ss2.4"></A> Quelques mots &agrave; propos de xntpd       </H2>

<P> 
Votre syst&egrave;me a en fait deux horloges -- l'horloge temps r&eacute;el sur 
batterie qui garde trace du temps quand le syst&egrave;me est &eacute;teint (aussi 
connue  comme "l'horloge CMOS", "horloge mat&eacute;rielle" ou "RTC") et 
le 'temps noyau' (parfois appell&eacute;e "horloge logicielle" ou "horloge 
syst&egrave;me") qui est bas&eacute; sur l'interruption timer et qui est 
initialis&eacute;e &agrave; partir de l'horloge CMOS au d&eacute;marrage du syst&egrave;me.
Les deux vont d&eacute;river &agrave; des rythmes diff&eacute;rents, ainsi elles vont 
graduellement s'&eacute;carter l'une de l'autre, tout en s'&eacute;cartant du temps 'r&eacute;el'.</P>
<P></P>
<P>Toutes les r&eacute;f&eacute;rences &agrave; "l'horloge" dans la documentation de xntpd se 
r&eacute;f&egrave;rent &agrave; "l'horloge noyau". Quand vous ex&eacute;cutez xntpd ou timed (ou 
n'importe quel autre programme qui utilise l'appel syst&egrave;me adjtimex), 
le noyau linux suppose que l'horloge du noyau est plus pr&eacute;cise que 
l'horloge CMOS, et remets &agrave; jour le temps CMOS toutes les 11 minutes &agrave; 
partir de ce moment (jusqu'&agrave; ce que l'on relance l'ordinateur). Cela 
signifie que 'clock' ne sais plus quand l'horloge CMOS a &eacute;t&eacute; modifi&eacute; 
la derni&egrave;re fois, ainsi vous ne pouvez plus utiliser le facteur 
de correction dans <CODE>/etc/adjtime</CODE>. Vous pouvez utiliser ntpdate dans 
votre fichier de d&eacute;marrage pour mettre &agrave; jour initialement l'horloge &agrave; 
partir d'un serveur de temps avant de lancer xntpd. Si vous n'avez 
pas toujours acc&eacute;s &agrave; une source fiable de temps lors
de l'allumage de l'ordinateur, cela peut &ecirc;tre un peu g&ecirc;nant -- 
xntpd n'est pas vraiment con&ccedil;u pour &ecirc;tre utilis&eacute; dans des situations 
comme celles l&agrave;.</P>
<P></P>
<P>Xntpd inclue des drivers pour plusieurs horloges radio, et peut &ecirc;tre 
configur&eacute; pour appeler le service de temps t&eacute;l&eacute;phonique de NIST &agrave; des 
temps r&eacute;guliers (soyez s&ucirc;r de calculer l'incidence sur votre facture 
t&eacute;l&eacute;phonique lors du param&eacute;trage de l'intervalle entre deux appels). 
Il peut aussi appliquer un facteur de correction &agrave; l'horloge noyau
s'il perd contact avec les autres sources pour une p&eacute;riode de temps 
assez longue.</P>
<P></P>
<P>La plupart des horloges radio co&ucirc;tent 3-4000$, mais vous 
pouvez obtenir des plans pour une 'boite gadget' peu ch&egrave;re (en fait un 
modem 300 baud) qui se met entre votre ordinateur et n'importe quelle 
radio onde courte r&eacute;gl&eacute;e sur la station de temps canadienne CHU 
(voir 
<A HREF="ftp://ftp.udel.edu/pub/ntp/gadget.tar.Z">ftp://ftp.udel.edu/pub/ntp/gadget.tar.Z</A>
). Le
r&eacute;cepteur Heathkit WWV ("l'Horloge la Plus Pr&eacute;cise") est aussi encore 
disponible (bien que n'&eacute;tant pas en kit), et co&ucirc;te aux environs de
4-500 $. Les signaux GPS contiennent aussi des informations de 
temps, et quelques recepteurs GPS peuvent se connecter sur le port 
s&eacute;rie. Cela peut &ecirc;tre la solution la moins on&eacute;reuse dans
un futur proche.</P>
<P></P>
<P>En th&eacute;orie, on peut &eacute;crire un programme pour utiliser le service 
de temps t&eacute;l&eacute;phonique NIST pour calculer automatiquement le taux de 
d&eacute;rive de l'horloge CMOS et de l'horloge noyau. Je ne suis 
pas au courant d'un quelconque programme d&eacute;mon qui 
ferait cela, mais la plupart du code peut &ecirc;tre emprunt&eacute; &agrave; xntpd.</P>
<P></P>
<P></P>
<P></P>
<P></P>

<HR>
<P>
Chapitre <A HREF="Clock-1.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="Clock.html#toc2">ce chapitre</A>,
 <A HREF="Clock.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="Clock.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>