                    Gestion prcise de l'heure et de la date

  Version franaise du Managing Accurate Date and Time

  Avi Alkalay

   IBM quipe Impact Linux : http://ibm.com/linux [http://ibm.com/linux]
   Consultant Linux et normes ouvertes : architecte en chef informatique et
   logiciels

   <avi CHEZ
   unix POINT sh>

   Suggestion d'utiliser pool.ntp.org et des serveurs publics de temps NTP de
   strate 2 : Brad Knowles

   Suggestion d'utiliser ntpq au lieu de ntpdc: Kent Borg

   Explication des informations donnes par ntpq et ntpdc: Yura Moron

   Adaptation japonaise
   [http://www.linux.or.jp/JF/JFdocs/TimePrecision-HOWTO/]: Takeo Nakano

   Adaptation russe [http://computerlib.narod.ru/html/linuxtime.htm]: SHAKI

   Adaptation hongroise
   [http://tldp.fsf.hu/HOWTO/TimePrecision-HOWTO-hu/index.html], la section
   chrony et la toute premire section: Mihaly Gyulai

   Adaptation franaise
   [http://www.traduc.org/docs/HOWTO/lecture/TimePrecision-HOWTO.html]:
   Philippe Wautelet

   Relecture de la version franaise: Raphal Semeteys

   Prparation de la publication de la v.f.: Jean-Philippe Gurard

   Version : 1.0.9.fr.1.0

   Copyright  2002, 2003, 2004 Avi Alkalay

   Copyright  2004, 2005 Philippe Wautelet, Raphal Semeteys, Jean-Philippe
   Gurard

   2005-09-24

   +------------------------------------------------------------------------+
   | Historique des versions                                                |
   |------------------------------------------------------------------------|
   | Version 1.0.9.fr.1.0          | 2005-09-24         | PW, RS, JPG       |
   |------------------------------------------------------------------------|
   | Adaptation franaise de la version 1.0.9.                              |
   |------------------------------------------------------------------------|
   | Version 1.0.9                 | 2005-05-03         | Avi               |
   |------------------------------------------------------------------------|
   | Inclusion d'un lien vers la traduction franaise (Included link to     |
   | french translation).                                                   |
   |------------------------------------------------------------------------|
   | Version 1.0.8                 | 2004-10-29         | MG                |
   |------------------------------------------------------------------------|
   | Adaptation hongroise, la section chrony et la toute premire section   |
   | (Hungarian translation, the chrony section and the very first          |
   | section).                                                              |
   |------------------------------------------------------------------------|
   | Version 1.0.7.fr.1.0          | 2005-03-22         | PW, RS, JPG       |
   |------------------------------------------------------------------------|
   | Premire traduction franaise.                                         |
   |------------------------------------------------------------------------|
   | Version 1.0.7                 | 2004-07-09         | AVI               |
   |------------------------------------------------------------------------|
   | Note prs de la licence pour signaler qu'il n'est pas ncessaire de    |
   | demander une autorisation pour traduire ce document ; petites          |
   | corrections pour plusieurs phrases (Disclaimer near to license, to let |
   | people know they can translate without asking permission; Small fixes  |
   | in some phrases).                                                      |
   |------------------------------------------------------------------------|
   | Version 1.0.6                 | 2004-02-25         | AVI               |
   |------------------------------------------------------------------------|
   | Ajout remerciements et lien vers la traduction russe (Included        |
   | credits and link to russian translation).                              |
   |------------------------------------------------------------------------|
   | Version 1.0.5                 | 2003-07-05         | AVI               |
   |------------------------------------------------------------------------|
   | Chang l'adresse vers les serveurs de temps publics et ajout          |
   | pool.ntp.org (Changed public time servers list URL. Added              |
   | pool.ntp.org).                                                         |
   |------------------------------------------------------------------------|
   | Version 1.0.4                 | 2002-12-21         | AVI               |
   |------------------------------------------------------------------------|
   | Ajout remerciements et lien vers la traduction japonaise (Added       |
   | japanese translation link and credits).                                |
   |------------------------------------------------------------------------|
   | Version 1.0.3                 | 2002-08-24         | AVI               |
   |------------------------------------------------------------------------|
   | Corrig les largeurs d'crans et de listings (Fixed wrong screen and   |
   | programlisting widths).                                                |
   |------------------------------------------------------------------------|
   | Version 1.0.2                 | 2002-08-04         | AVI               |
   |------------------------------------------------------------------------|
   | Lien vers une page de serveurs de temps publics (Link to public time   |
   | servers page).                                                         |
   |------------------------------------------------------------------------|
   | Version 1.0.1                 | 2002-05-07         | AVI               |
   |------------------------------------------------------------------------|
   | Conversion finale en XML et rorganisation des fichiers (Final XML     |
   | conversion. Files reorganization).                                     |
   |------------------------------------------------------------------------|
   | Version 1.0                   | 2002-04-28         | AVI               |
   |------------------------------------------------------------------------|
   | Image termine (Finalized image).                                      |
   |------------------------------------------------------------------------|
   | Version 0.8                   | 2002-04-27         | AVI               |
   |------------------------------------------------------------------------|
   | Remplac ntpdc par ntpq dans l'exemple (Switched from ntpdc example to |
   | ntpq, based on contributions).                                         |
   |------------------------------------------------------------------------|
   | Version 0.8.1                 | 2002-04-20         | AVI               |
   |------------------------------------------------------------------------|
   | Graphique amlior et liens vers d'autres documents (Improved graphic. |
   | Links to other doc locations).                                         |
   |------------------------------------------------------------------------|
   | Version 0.8                   | 2002-04-14         | AVI               |
   |------------------------------------------------------------------------|
   | Amlioration de la figure NTP (Better tuning of NTP graphic).          |
   |------------------------------------------------------------------------|
   | Version 0.76                  | 2002-04-13         | AVI               |
   |------------------------------------------------------------------------|
   | Ajout une figure sur l'architecture (Inclusion of architecture        |
   | graphic).                                                              |
   |------------------------------------------------------------------------|
   | Version 0.75                  | 2002-04-10         | AVI               |
   |------------------------------------------------------------------------|
   | Correction orthographe et utilisation DocBook XSLT 1.50 (Spell         |
   | checked. Using DocBook XSLT 1.50).                                     |
   |------------------------------------------------------------------------|
   | Version 0.65                  | 2002-03-31         | AVI               |
   |------------------------------------------------------------------------|
   | Pass au format XML 4.1.2 DocBook (Upgraded to XML 4.1.2 DocBook       |
   | format).                                                               |
   |------------------------------------------------------------------------|
   | Version 0.6                   | 2002-03-29         | AVI               |
   |------------------------------------------------------------------------|
   | Termin le mcanisme des fuseaux horaires sur Linux. Cr l'annexe. Il |
   | ne reste plus que les dessins. (Finished timezone mechanism on Linux.  |
   | Created appendix. Now only drawings are needed).                       |
   |------------------------------------------------------------------------|
   | Version 0.4                   | 2002-03-24         | AVI               |
   |------------------------------------------------------------------------|
   | Toute la structure est dfinie. Tous les exemples de commandes sont    |
   | crits (All skeleton defined. All command examples written).           |
   |------------------------------------------------------------------------|
   | Version 0.2                   | 2002-03-19         | AVI               |
   |------------------------------------------------------------------------|
   | Premire version DocBook (First DocBook version).                      |
   +------------------------------------------------------------------------+

   Rsum

   Ce document prsente la gestion de la date et de l'heure sous Linux. Il
   explique galement comment rgler la date et l'heure de votre systme et
   comment synchroniser votre machine via le protocole NTP.

   --------------------------------------------------------------------------

   Table des matires

   1. Pourquoi avoir une horloge prcise ?

                1.1. De quels facteurs dpend l'horloge matrielle ?

   2. L'heure et la date en informatique

   3. Qu'est-ce qu'un fuseau horaire ?

                3.1. L'heure d't

                3.2. Exemples de fuseaux horaires

                3.3. Les fuseaux horaires et Linux

   4. Les paramtres corrects pour votre machine Linux

                4.1. Slection du fuseau horaire

                4.2. Rgler l'horloge matrielle

   5. Synchronisation prcise de l'heure

                5.1. NTP : protocole de diffusion du temps en rseau (Network
                Time Protocol)

                5.2. Construire une architecture simple de synchronisation de
                l'heure

                5.3. Configuration NTP

                5.4. Observer votre machine se synchroniser

                5.5. Lancer automatiquement NTP au dmarrage

   6. Une horloge prcise avec le programme chrony

                6.1. En quoi chrony diffre de ntp ?

                6.2. Comment utiliser chrony ?

   A.  propos de ce document

1. Pourquoi avoir une horloge prcise ?

   Si votre ordinateur ne se connecte jamais  d'autres ordinateurs (ou 
   d'autres appareils utilisant une horloge), la prcision de l'horloge n'est
   pas critique en elle-mme, elle dpend des besoins de l'utilisateur.
   Cependant, les programmes qui d'une faon ou l'autre utilisent internet
   dpendent d'une date et d'une heure prcises. Voici quelques situations o
   vous pourriez en avoir besoin :

     o Pour des logiciels effectuant des transactions ;

     o Pour des applications commerciales (p.ex. eBay) ;

     o Pour des clients et serveurs de messagerie ;

     o Pour des sites web qui utilisent des cookies ;

     o Pour des applications web distibues ;

     o Pour certains services web ;

     o Pour des applications distribues  base de composants telles que
       J2EE, .NET, et ctera ;

     o Pour des systmes de fichiers modernes avancs et parallles tels que
       AFS, DFS, GFS, GPFS, et ctera.

   Et bien sr, pour utiliser votre ordinateur pour rgler votre montre.

  1.1. De quels facteurs dpend l'horloge matrielle ?

   Ici, nous allons un peu parler de la prcision de l'horloge matrielle.

   Dans les PC, des oscillateurs  quartz grent l'horloge matrielle. La
   frquence de l'oscillateur est divise et finalement on obtient un
   compteur qui est incrment d'une unit toutes les secondes (en ralit
   c'est plus compliqu que , mais c'est suffisant pour nous).
   L'oscillateur fonctionne mme lorsque l'ordinateur est teint. Ds lors,
   au dmarrage de l'ordinateur (et de Linux), l'horloge matrielle peut
   donner l'heure actuelle. La stabilit de cette horloge dpend
   principalement de la temprature de son environnement mais aussi de la
   pression atmosphrique et de la stabilit de la tension de son
   alimentation lectrique. L'horloge matrielle est fiable  court terme.
   Cependant,  long terme, elle drive par rapport  l'heure exacte. Puisque
   l'on peut continuellement comparer la frquence de notre horloge
   matrielle  celle d'une horloge exacte, on peut calculer la frquence de
   l'horloge matrielle et ainsi reconstituer l'heure exacte. Si cette
   horloge exacte se trouve dans notre rseau local, la prcision de
   l'horloge de votre machine Linux sera de l'ordre de 0.01s. Si vous
   utilisez plutt internet, votre horloge sera au plus  0.2s de l'heure
   exacte.

2. L'heure et la date en informatique

   Pour dterminer l'heure actuelle en un endroit donn de la plante, un
   ordinateur a besoin d'exactement deux informations :

    1. l'heure UTC exacte (en franais Temps Universel Coordonn -- qui a
       remplac l'heure GMT) ;

    2. le fuseau horaire local.

   Pour les ordinateurs, il y a aussi une horloge matrielle interne qui sert
   de temps de base pour le systme d'exploitation.

   La date et l'heure du systme d'exploitation (nous n'utiliserons plus que
   le terme date ou heure pour exprimer les deux  partir de maintenant) sont
   rgles au dmarrage par un script qui lit l'horloge matrielle et
   l'ajuste en fonction du fuseau horaire (il n'est pas stock dans le BIOS).
   Aprs cette synchronisation, les heures du BIOS et du systme
   d'exploitation sont compltement indpendantes. Ds lors, aprs un certain
   temps, il peut y avoir plusieurs secondes de dcalage. Laquelle est
   correcte ? Sans prcautions particulires, aucune.

   Nous allons maintenant discuter comment les rendre toutes les deux 100%
   fiables.

3. Qu'est-ce qu'un fuseau horaire ?

   Les fuseaux horaires sont des divisions gographiques du globe terrestre
   tous les 15 de longitude, commenant  Greenwich en Angleterre, cres
   pour aider les gens  dterminer l'heure qu'il est partout dans le monde.

   De nos jours, il s'agit plus de divisions politiques que gographiques,
   parce que parfois les gens ont besoin d'avoir la mme heure que d'autres
   en des lieux pas trop loigns. Et pour faire des conomies d'nergies,
   nous avons aujourd'hui l'heure d't qui correspond  un changement de
   fuseau horaire.

   Les fuseaux horaires sont gnralement dfinis par les gouvernements ou
   par un institut d'astronomie et sont reprsents par un code de 3 ou 4
   lettres. Voir Section 3.2,  Exemples de fuseaux horaires  pour des
   exemples.

   Si vous voulez connatre l'heure actuelle n'importe o dans le monde, vous
   pouvez utiliser les sites web timezoneconverter.com
   [http://www.timezoneconverter.com/] (en anglais) ou horlogeparlante.com
   [http://www.horlogeparlante.com/] (en franais)

  3.1. L'heure d't

   Pour faire des conomies d'nergie, les gouvernements ont cr l'heure
   d't (appele en anglais Daylight Savings Time ou DST). Nos horloges sont
   avances d'une heure et cela fait sembler nos journes plus longues. En
   fait, cela revient seulement  changer de fuseau horaire. Le temps
   primitif (UTC) est encore, et restera toujours, le mme.

   Nous verrons plus tard comment activer ou dsactiver automatiquement
   l'heure d't dans Linux.

  3.2. Exemples de fuseaux horaires

   Il n'y a rien de plus parlant que des exemples :

   Tableau 1. Fuseaux horaires du Brsil. Dcalage par rapport  l'heure UTC

   +------------------------------------------------------------------------+
   | Nom et dcalage | Nom et dcalage heure |            Lieux             |
   |                 |         d't         |                              |
   |-----------------+-----------------------+------------------------------|
   | BREST -2:00     | BREDT -1:00           | Fernando de Noronha          |
   |-----------------+-----------------------+------------------------------|
   |                 |                       | Sao Paulo, Rio, Brasilia,    |
   | BRST -3:00      | BRDT -2:00            | Minas Gerais, Rgion         |
   |                 |                       | Nord-Est, Rgion Sud, et     |
   |                 |                       | ctera                       |
   |-----------------+-----------------------+------------------------------|
   | BRWST -4:00     | BRWDT -3:00           | Rgion Ouest                 |
   |-----------------+-----------------------+------------------------------|
   | BRAST -5:00     | BRADT -4:00           | Acre                         |
   +------------------------------------------------------------------------+

   Si vous avez une table telle que celle-ci pour les USA ou l'Europe,
   envoyez-la moi s'il-vous-plat.

  3.3. Les fuseaux horaires et Linux

   Les systmes Linux utilisent les fuseaux horaires dynamiques GLIBC bass
   sur /etc/localtime. Ce fichier est un lien vers (ou une copie) d'un
   fichier d'information de fuseau horaire situ gnralement dans le
   rpertoire /usr/share/zoneinfo.

   D'un point de vue gophysique, il y a seulement 360/15=24 fuseaux
   horaires dans le monde. Mais pour rendre les choses faciles pour tous et
   pour tenir compte de toutes les variations politiques (comme l'heure
   d't), vous trouverez des centaines de fichiers d'information de fuseau
   horaire dans /usr/share/zoneinfo, chacun valable pour une ville, un pays,
   et ctera.

   Certains pays, comme le Brsil, n'ont pas un jour fixe pour passer 
   l'heure d't. Il est dfini chaque anne quelques mois avant l't et
   peut vous obliger  changer votre fichier d'information de fuseau horaire
   qui peut tre compil avec la commande zic  partir d'un fichier comme
   celui-ci.

   Exemple 1. Fichier d'information de fuseau horaire pour le Brsil

 # Fuseaux horaires du Brsil
 #
 # Les fuseaux horaires brsiliens sont :
 # BREST: Est de Brasilia. Fernando de Noronha.
 # BRST:  Brasilia, Sao Paulo, Rio, Nord-est, Sud, et ctera
 # BRWST: Ouest de Brasilia. Mato Grosso, Manaus
 # BRAST: Acre.
 #
 # En heure d't, la lettre 'S' devient 'D'.
 #
 # Pour installer, excuter :
 #
 # # zic Brazil.txt
 #
 # Les fichiers de fuseaux horaires seront installs dans
 # /usr/share/zoneinfo (dpend de votre distribution). Ensuite,
 # crez un lien symbolique de votre zone vers /etc/localtime :
 #
 # # ln -sf /usr/share/zoneinfo/Brazil/Brasilia /etc/localtime
 #
 #
 # Si vous avez des mises  jour ou de nouveaux standards pour ce
 # fichier, envoyez-les en anglais 
 #
 # Avi Alkalay <avi @ unix.sh>
 #
 # Dernire mise  jour : 18 Nov 2000
 # Ce fichier est disponible sur http://avi.alkalay.net/linux/zoneinfo/
 #

 # Rule  NAME    FROM  TO    TYPE  IN    ON   AT    SAVE   LETTER/S
 Rule    Brazil  1931  1932  -     Oct   3    0:00  1:00   D
 Rule    Brazil  1932  1933  -     Mar   31   0:00  0      S
 Rule    Brazil  1949  only  -     Dec   1    0:00  1:00   D
 Rule    Brazil  1950  only  -     Apr   30   0:00  0      S
 Rule    Brazil  1950  1952  -     Dec   1    0:00  1:00   D
 Rule    Brazil  1951  only  -     Apr   16   0:00  0      S
 Rule    Brazil  1952  only  -     Mar   31   0:00  0      S
 Rule    Brazil  1953  only  -     Feb   28   0:00  0      S
 Rule    Brazil  1963  only  -     Oct   23   0:00  1:00   D
 Rule    Brazil  1964  only  -     Mar   1    0:00  0      S
 Rule    Brazil  1965  only  -     Jan   31   0:00  1:00   D
 Rule    Brazil  1965  only  -     Mar   31   0:00  0      S
 Rule    Brazil  1965  only  -     Dec   1    0:00  1:00   D
 Rule    Brazil  1966  1968  -     Mar   1    0:00  0      S
 Rule    Brazil  1966  1967  -     Nov   1    0:00  1:00   D
 Rule    Brazil  1984  only  -     Nov   2    0:00  1:00   D
 Rule    Brazil  1985  only  -     Mar   15   0:00  0      S
 Rule    Brazil  1985  only  -     Nov   2    0:00  1:00   D
 Rule    Brazil  1986  only  -     Mar   15   0:00  0      S
 Rule    Brazil  1986  only  -     Oct   25   0:00  1:00   D
 Rule    Brazil  1987  only  -     Feb   14   0:00  0      S
 Rule    Brazil  1987  only  -     Oct   25   0:00  1:00   D
 Rule    Brazil  1988  only  -     Feb   7    0:00  0      S
 Rule    Brazil  1988  only  -     Oct   16   0:00  1:00   D
 Rule    Brazil  1989  only  -     Jan   29   0:00  0      S
 Rule    Brazil  1989  only  -     Oct   15   0:00  1:00   D
 Rule    Brazil  1990  only  -     Feb   11   0:00  0      S
 Rule    Brazil  1990  only  -     Oct   21   0:00  1:00   D
 Rule    Brazil  1991  only  -     Feb   17   0:00  0      S
 Rule    Brazil  1991  only  -     Oct   20   0:00  1:00   D
 Rule    Brazil  1992  only  -     Feb   9    0:00  0      S
 Rule    Brazil  1992  only  -     Oct   25   0:00  1:00   D
 Rule    Brazil  1993  only  -     Jan   31   0:00  0      S
 Rule    Brazil  1993  only  -     Oct   17   0:00  1:00   D
 Rule    Brazil  1994  only  -     Feb   20   0:00  0      S
 Rule    Brazil  1994  only  -     Oct   16   0:00  1:00   D
 Rule    Brazil  1995  only  -     Feb   19   0:00  0      S
 Rule    Brazil  1995  only  -     Oct   15   0:00  1:00   D
 Rule    Brazil  1996  only  -     Feb   11   0:00  0      S
 Rule    Brazil  1996  only  -     Oct   06   0:00  1:00   D
 Rule    Brazil  1997  only  -     Feb   16   0:00  0      S
 Rule    Brazil  1997  only  -     Oct   06   0:00  1:00   D
 Rule    Brazil  1998  only  -     Mar   01   0:00  0      S
 Rule    Brazil  1998  only  -     Oct   11   0:00  1:00   D
 Rule    Brazil  1999  only  -     Feb   21   0:00  0      S
 Rule    Brazil  1999  only  -     Oct   03   0:00  1:00   D
 Rule    Brazil  2000  only  -     Feb   27   0:00  0      S
 Rule    Brazil  2000  only  -     Oct   8    0:00  1:00   D
 Rule    Brazil  2001  only  -     Feb   18   0:00  0      S


 # Zone  NAME                          GMTOFF  RULES/SAVE    FORMAT  [UNTIL]
 Zone    Brazil/DeNoronha              -2:00   Brazil        BRE%sT
 Zone    posix/Brazil/DeNoronha        -2:00   Brazil        BRE%sT
 Zone    right/Brazil/DeNoronha        -2:00   Brazil        BRE%sT
 Zone    Brazil/East                   -2:00   Brazil        BRE%sT
 Zone    posix/Brazil/East             -2:00   Brazil        BRE%sT
 Zone    right/Brazil/East             -2:00   Brazil        BRE%sT

 Zone    America/Sao_Paulo             -3:00   Brazil        BR%sT
 Zone    America/Rio_de_Janeiro        -3:00   Brazil        BR%sT
 Zone    America/Brasilia              -3:00   Brazil        BR%sT
 Zone    posix/America/Sao_Paulo       -3:00   Brazil        BR%sT
 Zone    posix/America/Rio_de_Janeiro  -3:00   Brazil        BR%sT
 Zone    posix/America/Salvador        -3:00   Brazil        BR%sT
 Zone    posix/America/Brasilia        -3:00   Brazil        BR%sT
 Zone    posix/Brazil/Central          -3:00   Brazil        BR%sT
 Zone    posix/Brazil/Brasilia         -3:00   Brazil        BR%sT
 Zone    posix/Brazil/Sao_Paulo        -3:00   Brazil        BR%sT
 Zone    posix/Brazil/Salvador         -3:00   Brazil        BR%sT
 Zone    posix/Brazil/Rio_de_Janeiro   -3:00   Brazil        BR%sT
 Zone    right/America/Sao_Paulo       -3:00   Brazil        BR%sT
 Zone    right/America/Rio_de_Janeiro  -3:00   Brazil        BR%sT
 Zone    right/America/Salvador        -3:00   Brazil        BR%sT
 Zone    right/America/Brasilia        -3:00   Brazil        BR%sT
 Zone    right/Brazil/Central          -3:00   Brazil        BR%sT
 Zone    right/Brazil/Brasilia         -3:00   Brazil        BR%sT
 Zone    right/Brazil/Sao_Paulo        -3:00   Brazil        BR%sT
 Zone    right/Brazil/Salvador         -3:00   Brazil        BR%sT
 Zone    right/Brazil/Rio_de_Janeiro   -3:00   Brazil        BR%sT
 Zone    Brazil/Central                -3:00   Brazil        BR%sT
 Zone    Brazil/Brasilia               -3:00   Brazil        BR%sT
 Zone    Brazil/Sao_Paulo              -3:00   Brazil        BR%sT
 Zone    Brazil/Rio_de_Janeiro         -3:00   Brazil        BR%sT
 Zone    Brazil/Salvador               -3:00   Brazil        BR%sT

 Zone    Brazil/West                   -4:00   Brazil        BRW%sT
 Zone    Brazil/Manaus                 -4:00   Brazil        BRW%sT
 Zone    Brazil/Rondonia               -4:00   Brazil        BRW%sT
 Zone    Brazil/Roraima                -4:00   Brazil        BRW%sT
 Zone    Brazil/Mato_Grosso            -4:00   Brazil        BRW%sT
 Zone    posix/Brazil/Manaus           -4:00   Brazil        BRW%sT
 Zone    posix/Brazil/Mato_Grosso      -4:00   Brazil        BRW%sT
 Zone    right/Brazil/Manaus           -4:00   Brazil        BRW%sT
 Zone    right/Brazil/Mato_Grosso      -4:00   Brazil        BRW%sT
 Zone    posix/America/Manaus          -4:00   Brazil        BRW%sT
 Zone    right/America/Manaus          -4:00   Brazil        BRW%sT

 Zone    Brazil/Acre                   -5:00   Brazil        BRA%sT

   Une ligne Rule dfinit la date et l'heure  laquelle s'effectue un
   changement de fuseau horaire, tandis qu'une ligne Zone rfrence la rgle
   (Rule) qui la grera. Notez que le nom de la Zone est en fait le nom du
   fichier dans le rpertoire /usr/share/zoneinfo et qu'il peut y avoir
   plusieurs noms pour le mme fuseau horaire afin qu'il soit plus facile de
   trouver sa propre zone.

   Les commentaires du fichier expliquent comment installer ces fuseaux
   horaires en utilisant le compilateur de fichier d'information de fuseau
   horaire zic. Pour le rendre effectif, vous n'avez plus qu' crer un lien
   (ou copier) du fichier d'information de fuseau horaire vers
   /etc/localtime. Pour certaines distributions, il y a une mthode de niveau
   suprieur (et prfrable) pour rgler le fuseau horaire dcrite dans
   Section 4.1,  Slection du fuseau horaire .

   Aprs avoir fait pointer /etc/localtime vers le fichier de fuseau horaire
   correct, les rgles de cette zone s'appliquent dj et les changements de
   fuseau sont automatiques ; vous n'avez plus  changer l'heure
   manuellement.

   La squence suivante de commandes illustre la dynamique de la gestion des
   fuseaux horaires sous Linux. Notez qu'elles ont toutes t excutes en
   moins d'une minute :

 bash$ ls -al /etc/localtime
 lrwxrwxrwx  1 root root 35 May 22  2001 /etc/localtime -> /usr/share/zoneinfo/Brazil/Brasilia
 bash$ date
 Fri Mar 29 20:13:38 BRST 2002
 bash# ln -sf /usr/share/zoneinfo/GMT /etc/localtime
 bash$ date
 Fri Mar 29 23:13:47 GMT 2002
 bash# ln -sf /usr/share/zoneinfo/Brazil/Brasilia /etc/localtime
 bash$ date
 Fri Mar 29 20:14:03 BRST 2002

    20:13, j'tais dans le fuseau horaire par dfaut du Brsil (BRST) ;
   ensuite, je suis pass  l'heure GMT et l'horloge du systme est passe 
   23:13 ! Quand votre fuseau horaire passera  l'heure d't, vous verrez un
   effet similaire, mais cette fois les rgles sont toutes  l'intrieur de
   votre fichier /etc/localtime (qui ne change pas au contraire de cet
   exemple).

   Une application tournant sur cette machine (par exemple un serveur web
   gnrant des fichiers journaux) sera sensible  ce changement ; il est
   donc trs important pour les dveloppeurs de se souvenir que l'heure
   locale est gale  l'heure universelle actuelle plus le fuseau horaire
   actuel, comme dcrit dans Section 2,  L'heure et la date en
   informatique .

   Finalement, je suis revenu  mon fuseau horaire de dpart.

4. Les paramtres corrects pour votre machine Linux

   Quel que soit le systme que vous voulez installer, vous devez connatre
   votre fuseau horaire. Il peut tre dtermin par une ville, une rgion ou
   un pays. Vous devez aussi dcider comment rgler l'heure du BIOS. Ici,
   vous pouvez suivre deux stratgies :

   Machine avec seulement Linux

           Dans ce cas, vous pouvez mettre l'heure du BIOS  l'heure UTC. Les
           changements de fuseaux horaires seront grs dynamiquement comme
           expliqu dans Section 3.3,  Les fuseaux horaires et Linux .

   Machine avec Linux et MS Windows

           Windows manipule l'heure d'une manire plus primitive que Linux.
           Pour Windows, l'heure du BIOS correspond toujours  l'heure
           locale, les changements de fuseaux sont donc plus agressifs car
           ils changent directement l'horloge matrielle. Et puisque Linux et
           Windows initialisent tous deux leur heure  partir de l'horloge
           matrielle, si les deux sont prsents, Linux doit la manipuler de
           la mme faon. Dans ce cas, vous devez mettre votre BIOS  l'heure
           locale.

  4.1. Slection du fuseau horaire

   Sur les systmes Red Hat Linux et drivs, vous pouvez rgler la stratgie
   pour l'horloge matrielle et les fuseaux horaires grce  la commande
   timeconfig, qui utilise une interface conviviale. Vous pouvez aussi le
   faire de faon non-interactive :

   Exemple 2. Outil de configuration de l'heure

 bash# timeconfig "Brasil/East"         # rgle l'horloge matrielle  l'heure locale
 bash#                                  # et le fuseau horaire sur la zone est du Brsil
 bash#
 bash# timeconfig --utc "Brasil/East"   # rgle l'horloge matrielle  l'heure UTC
 bash#                                  # et le fuseau horaire sur la zone est du Brsil

   De toute faon, cela change le fichier /etc/sysconfig/clock qui est lu au
   dmarrage. Vous pouvez l'diter manuellement. Il ressemble  ceci :

   Exemple 3. /etc/sysconfig/clock file

 ZONE="Brazil/East"
 UTC=true
 ARC=false

  4.2. Rgler l'horloge matrielle

   Je vous conseille de ne changer votre horloge matrielle que si vous
   comprenez comment obtenir l'heure exacte, comme expliqu dans Section 5,
    Synchronisation prcise de l'heure .

   La commande hwclock lit ou rgle l'horloge matrielle en fonction des
   paramtres que vous lui donnez et qui sont documents dans son manuel.
   Mais vous n'avez normalement pas  l'utiliser si vous avez une
   distribution moderne. Aprs avoir choisi votre stratgie pour l'horloge
   matrielle et les fuseaux horaires, vous pouvez utiliser la commande de
   haut niveau setclock pour rgler correctement votre horloge matrielle.
   Vous n'avez pas besoin de passer de paramtres car setclock appelle
   intelligemment hwclock pour rgler le BIOS en se basant sur l'heure
   courante de votre systme d'exploitation. Vous devriez donc toujours
   utiliser la commande setclock.

   Mais si vous tes minimaliste et prfrez la faon complique, voici
   quelques exemples d'utilisation de hwclock :

   Exemple 4. Utilisation de setclock et hwclock

 bash# setclock                                  # La manire simple de rgler l'horloge matrielle
 bash#
 bash# hwclock                                   # Lit l'horloge matrielle
 bash#
 bash# hwclock --systohc --utc                   # Rgle l'horloge matrielle avec l'heure UTC
 bash#                                           # base sur l'heure actuelle du systme
 bash#
 bash# hwclock --systohc                         # Rgle l'horloge matrielle avec l'heure actuelle
 bash#                                           # base sur l'heure actuelle du systme
 bash#
 bash# hwclock --set --date "21 Oct 2004 21:17"  # Rgle l'horloge matrielle avec l'heure spcifie

   Puisque l'heure du systme est indpendante de l'horloge matrielle, tout
   changement dans le BIOS n'apparatra que lors du dmarrage suivant.

   Une autre option pour changer l'horloge matrielle est de redmarrer
   l'ordinateur et d'accder  l'cran de configuration du BIOS. Sur les
   plates-formes IBM e-server zSeries
   [http://ibm.com/servers/eserver/zseries/os/linux/] vous devez le faire au
   niveau de z/VM parce que Linux tourne sur des machines virtuelles cres
   par z/VM.

5. Synchronisation prcise de l'heure

   Avoir l'heure exacte sur tous vos systmes est aussi important que d'avoir
   une stratgie solide de la scurit du rseau (ce qui est bien plus
   qu'utiliser des pare-feu). C'est un des lments essentiels d'une
   administration systme base sur de bonnes pratiques qui mne  des
   systmes bien organiss et srs. Une heure prcise est particulirement
   ncessaire lorsqu'on travaille avec des applications distribues, des
   services web ou des outils distribus de surveillance rseau.

  5.1. NTP : protocole de diffusion du temps en rseau (Network Time Protocol)

   Nous ne dcrirons pas ici le protocole, mais comment cette magnifique
   invention, ajoute  la prsence envahissante d'internet, peut nous tre
   utile. Vous pouvez en apprendre plus sur www.ntp.org
   [http://www.ntp.org/].

   Une fois le systme configur, NTP arrivera  garder l'heure exacte en ne
   faisant que de trs petits ajustements pour ne pas perturber les
   applications en cours d'excution.

   L'heure exacte peut tre obtenue en utilisant des appareils bass sur la
   frquence lectronique des atomes. Il existe aussi une mthode base sur
   le systme de satellites GPS. La premire est plus fiable, mais la seconde
   n'est pas si mauvaise. Les deux ncessitent un matriel trs spcifique et
   trs cher, mais leurs propritaires (en gnral des universits ou des
   laboratoires de recherche) les connectent  des ordinateurs qui font
   tourner un serveur NTP qui sont connects  internet et qui vous laissent
   y accder gratuitement. Et c'est grce  eux que nous synchroniserons nos
   systmes.

  5.2. Construire une architecture simple de synchronisation de l'heure

   Vous aurez besoin de  :

    1. Une connexion directe ou indirecte ( travers un pare-feu)  internet.

    2. Choisir des serveurs NTP. Vous pouvez utiliser le serveur public
       pool.ntp.org [http://www.fortytwo.ch/time/] ou en choisir dans la
       deuxime strate de serveurs de temps publics
       [http://www.eecis.udel.edu/~mills/ntp/clock2a.html] sur le site web de
       NTP. Si vous n'avez pas d'accs  internet, votre administrateur WAN
       (ce doit tre un type intelligent) peut probablement vous donner des
       adresses internes.

    3. Avoir le logiciel NTP install sur tous les systmes que vous voulez
       synchroniser. Vous pouvez trouver les RPM sur les cdroms de votre
       distribution Linux favorite ou faire une recherche
       [http://rpmfind.net/linux/rpm2html/search.php?query=ntp] sur
       http://rpmfind.net/ [http://rpmfind.net/].

   Voici un exemple d'une bonne architecture :

   Figure 1. Serveurs relais locaux pour NTP

                              [1]Architecture NTP

   Si vous avez plusieurs machines  synchroniser, ne les faites pas toutes
   accder aux serveurs NTP externes que vous avez choisis. Seuls deux de vos
   serveurs doivent accder aux serveurs NTP externes. Les autres machines se
   synchroniseront sur ces deux dernires. Nous les appellerons serveurs
   relais.

   Vos serveurs relais peuvent tre n'importe lesquelles de vos machines dj
   disponibles sur votre rseau. NTP consomme trs peu de mmoire et de
   processeur. Vous n'avez pas besoin d'une machine ddie  cette fonction.

   [2][Astuce] Astuce
               Crer des alias pour les noms d'htes de vos serveurs relais
               locaux est une bonne ide. Vous pouvez dfinir par exemple
               ntp1.mon-domaine.fr et ntp2.mon-domaine.fr. Puis n'utilisez
               que ces noms en configurant les machines clientes. De cette
               faon, vous pouvez dplacer la fonctionnalit NTP vers un
               nouveau serveur relais (avec un adresse IP et un nom d'hte
               diffrents) sans avoir  reconfigurer les clients. Demandez 
               votre administrateur DNS de crer ces alias.

  5.3. Configuration NTP

   Pour vos serveurs relais

           ditez /etc/ntp.conf et ajoutez les serveurs distants que vous
           avez choisis :

           Exemple 5. Fichier /etc/ntp.confdes machines relais

 server  ntp.cnrs.fr        # Un serveur de strate 1 de cnrs.fr
 server  autre-ntp.gouv.fr  # Un serveur de strate 2 de gouv.fr

           De nouveau, vous pouvez utiliser le serveur public pool.ntp.org
           [http://www.fortytwo.ch/time/] ou obtenir une liste de serveurs de
           temps publics [http://www.eecis.udel.edu/~mills/ntp/clock2a.html]
           sur le site web de NTP.

   Pour vos clients

           ditez /etc/ntp.conf et ajoutez vos serveurs relais avec un nom
           standard :

           Exemple 6. Fichier /etc/ntp.conf des machines clientes

 server  ntp1.mon-domaine.fr   # Mon premier serveur relais local
 server  ntp2.mon-domaine.fr   # Mon deuxime serveur relais local

   Si votre machine a une heure UTC diffrente de plusieurs minutes par
   rapport aux serveurs NTP, NTP ne fonctionnera pas. Dans ce cas, vous devez
   d'abord faire un synchronisation complte. Je vous recommande de le faire
   en dehors des heures de production. Vous n'avez besoin de le faire que
   lors de l'initialisation de votre configuration NTP, jamais plus aprs :

   Exemple 7. Premire synchronisation

 bash# ntpdate autre-ntp.gouv.fr       [3]1
 24 Mar 18:16:36 ntpdate[10254]: step time server 200.100.20.10 offset -15.266188 sec
 bash# ntpdate autre-ntp.gouv.fr       [4]2
 24 Mar 18:16:43 ntpdate[10255]: adjust time server 200.100.20.10 offset -0.000267 sec

   [5]1 Premire synchronisation complte. L'horloge retardait de 15
        secondes.
   [6]2 Deuxime synchronisation complte, juste pour tre sr. Maintenant,
        nous ne retardons pratiquement plus, ce qui est une bonne chose.

   La dernire tape consiste  dmarrer ou  redmarrer le dmon NTP sur
   chaque machine :

 bash# service ntpd restart

  5.4. Observer votre machine se synchroniser

   Maintenant que tout est configur, NTP va garder l'heure de votre machine
   synchronise. Vous pouvez observer ce processus en utilisant la commande
   d'interrogation NTP (ntpq) :

   Exemple 8. Un exemple d'interrogation de l'tat de la synchronisation
   temporelle

 bash# ntpq -p
      remote           refid      st t when poll reach   delay   offset  jitter
 ==============================================================================
 -jj.cs.umb.edu   gandalf.sigmaso  3 u   95 1024  377   31.681  -18.549   1.572
  milo.mcs.anl.go ntp0.mcs.anl.go  2 u  818 1024  125   41.993  -15.264   1.392
 -mailer1.psc.edu ntp1.usno.navy.  2 u  972 1024  377   38.206   19.589  28.028
 -dr-zaius.cs.wis ben.cs.wisc.edu  2 u  502 1024  357   55.098    3.979   0.333
 +taylor.cs.wisc. ben.cs.wisc.edu  2 u  454 1024  347   54.127    3.379   0.047
 -ntp0.cis.strath harris.cc.strat  3 u  507 1024  377  115.274   -5.025   1.642
 *clock.via.net   .GPS.            1 u  426 1024  377  107.424   -3.018   2.534
  ntp1.conectiv.c 0.0.0.0         16 u    - 1024    0    0.000    0.000 4000.00
 +bonehed.lcs.mit .GPS.            1 u  984 1024  377   25.126    0.131  30.939
 -world.std.com   204.34.198.40    2 u  119 1024  377   24.229   -6.884   0.421

   La signification de chaque colonne

   remote

           Est le nom du serveur NTP distant. Si vous utilisez l'option -n,
           vous verrez les adresses IP de ces serveurs  la place de leurs
           noms.

   refid

           Indique d'o chaque serveur obtient son heure. Il peut s'agir d'un
           nom d'hte ou de quelque chose comme .GPS., indiquant une source
           GPS (Global Positioning System).

   st

           La strate est un nombre allant de 1  16 qui indique la prcision
           du serveur distant. 1 est le plus fiable, 16 signifie que le
           serveur n'est pas disponible. Votre strate sera gale  celle du
           serveur distant le plus fiable plus 1. Ne vous connectez jamais 
           un serveur de la strate 1, utilisez ceux de niveau 2 ! Ces
           serveurs sont largement suffisants pour nos besoins, et cette
           politique permet de rduire le trafic vers les serveurs de la
           premire strate.

   poll

           L'intervalle (en secondes) entre deux requtes de temps. La valeur
           sera comprise entre les valeurs minimales et maximales autorises.
           Initialement la valeur sera petite pour permettre une
           synchronisation rapide. Une fois que les horloges sont synchrones,
           le temps entre deux requtes augmentera pour diminuer le trafic
           rseau et la charge sur les serveurs de temps populaires.

   reach

           C'est une reprsentation en base 8 d'un tableau de 8 bits
           reprsentant les 8 dernires fois que la machine a essay
           d'atteindre le serveur. Le bit est mis  1 si le serveur distant a
           pu tre atteint.

   delay

           Le dlai (en secondes) ncessaire pour recevoir une rponse  une
           demande de "quelle heure est-il ?".

   offset

           La valeur la plus importante. Le dcalage de temps entre le
           serveur local et le serveur distant. Pendant la synchronisation,
           le dcalage diminue, indiquant que l'horloge locale devient plus
           prcise.

   jitter

           Cette colonne indique la dispersion, qui est une mesure de la
           variance statistique du dcalage pendant plusieurs paires de
           requte/rponse successives. Des valeurs faibles de la dispersion
           sont meilleures que des valeurs leves. Plus elles sont faibles,
           plus la synchronisation temporelle sera prcise.

   Signification des signes devant les noms de serveur

   -

           Signifie que le service NTP local n'aime pas beaucoup ce serveur

   +

           Signifie que le service NTP local aime ce serveur

   x

           Marque un mauvais serveur

   *

           Indique le serveur prfr actuel

  5.5. Lancer automatiquement NTP au dmarrage

   Si vous voulez toujours avoir le service NTP sur votre machine mme si
   vous la redmarrez, faites ceci sur chaque machine :

 bash# chkconfig --level 2345 ntpd on

   Cela garantira un dmarrage automatique.

   Si votre machine fonctionne longtemps sans redmarrage (des mois ou des
   annes), vous remarquerez une importante diffrence entre la trs
   imprcise horloge matrielle et l'heure systme (maintenant trs prcise).
   Les distributions Linux modernes copient l'heure systme dans l'horloge
   matrielle chaque fois que le systme est arrt en utilisant un mcanisme
   similaire  la commande setclock. De cette faon, au dmarrage suivant,
   vous obtiendrez une date et une heure presque aussi prcises que ce
   qu'elles taient lors de l'arrt de votre ordinateur.

6. Une horloge prcise avec le programme chrony

  6.1. En quoi chrony diffre de ntp ?

   Chrony utilise aussi le protocole NTP et est aussi conu pour rendre
   l'horloge de Linux plus fiable. Il est aussi adapt  des systmes qui
   n'ont pas de connexion internet. La source d'heure exacte peut donc tre
   n'importe quelle horloge prcise  partir de laquelle on puisse lire
   l'heure et la transmettre au programme. De plus, il est galement capable
   d'estimer la drive de l'horloge matrielle et, en se basant sur celle-ci,
   d'ajuster l'horloge matrielle au dmarrage de l'ordinateur.

   La version 1.20 de chrony ne supporte pas encore les horloges internes de
   type GPS ou les rcepteurs radio DCF, mais la structure du programme rend
   de telles extensions possibles.

  6.2. Comment utiliser chrony ?

   Chrony est constitu de deux parties : le dmon chronyd et l'interface
   utilisateurchronyc.

   Vous pouvez trouver chrony sur chrony.sunsite.dk/index.php
   [http://chrony.sunsite.dk/index.php/]

A.  propos de ce document

   Copyright 2002, 2003, 2004 Avi Alkalay.

   Copyright 2004, 2005 Philippe Wautelet et copyright 2005 Raphal Semeteys
   pour la traduction franaise.

   This document must be distributed under the terms of [7]GNU Free
   Documentation License. Please translate, adapt, improve, redistrubute
   using the original XML DocBook source right bellow. Let me know if you
   want me to put a link to your translation/adaptation/improvement here.

   Ce document doit tre distribu sous les termes de la licence de
   documentation libre GNU (GFDL) [http://www.gnu.org/copyleft/fdl.html].
   Traduisez, adaptez, amliorez ou redistribuez SVP en utilisant le fichier
   source original ci-dessous au format XML DocBook. Faites-moi savoir si
   vous voulez que j'ajoute un lien ici vers votre version traduite, adapte
   ou amliore.

   Ce document est disponible aux endroits suivants :

     o Site officiel de la version originale
       [http://avi.alkalay.net/linux/docs/TimePrecision/] [Code source XML
       DocBook
       [http://avi.alkalay.net/linux/docs/TimePrecision/timeprecision.tar.gz]] ;

     o LinuxDoc, en tant que guide pratique (version anglaise)
       [http://en.tldp.org/HOWTO/TimePrecision-HOWTO/] [une seule page
       [http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/TimePrecision-HOWTO.html]]
       [PDF
       [http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/TimePrecision-HOWTO.pdf]] ;

     o Takeo Nakano <nakano CHEZ apm POINT seikei POINT ac POINT jp>
       traduction japonaise
       [http://www.linux.or.jp/JF/JFdocs/TimePrecision-HOWTO/] [version texte
       [http://www.linux.or.jp/JF/JFdocs/TimePrecision-HOWTO.txt]] ;

     o SHAKI <sha-ki CHEZ narod POINT ru> traduction russe
       [http://computerlib.narod.ru/html/linuxtime.htm] ;

     o Mihaly Gyulai <gyulai CHEZ fbi POINT hu> traduction hongroise
       [http://tldp.fsf.hu/HOWTO/TimePrecision-HOWTO-hu/index.html] ;

     o Dernire version franaise de ce document
       [http://www.traduc.org/docs/howto/lecture/TimePrecision-HOWTO.html]
       [Code source XML DocBook
       [http://www.traduc.org/cgi-bin/viewcvs.cgi/guides_pratiques/TimePrecision-HOWTO.xml]].

