web-dev-qa-db-fra.com

Correction de l'horloge système CentOS

L'utilisation de la fonction d'heure C (nombre de secondes depuis l'époque) montre que l'heure sur mon serveur CentOS 6 actuel a environ 7 heures de retard par rapport à un autre serveur avec l'heure correcte. Comment puis-je corriger l'horloge système? Je ne pense pas que ce soit une dérive car je viens de configurer ce serveur il y a quelques semaines, mais ça pourrait l'être. J'ai configuré ntpd mais cela n'aide pas, peut-être parce que le décalage horaire est trop important.

12
user3180

La réponse simple est "définir la date manuellement", ce que vous devez faire, mais pour éviter que cela ne se reproduise, vous devez faire plus.

  1. Assurez-vous que la configuration du fuseau horaire du système est dans un état sain.

    Sauf s'il existe une raison très forte de ne pas le faire (comme des problèmes de compatibilité logicielle), les horloges du serveur doivent toujours fonctionner à l'heure UTC.

    Si vous décidez de ne pas utiliser UTC, choisissez un fuseau horaire en exécutant tzselect. Un fuseau horaire sera imprimé à l'écran que vous utiliserez ci-dessous. Un exemple serait Europe/Moscow. Sinon, utilisez UTC comme fuseau horaire ci-dessous.

    Here is that TZ value again, this time on standard output so that you
    can use the /usr/bin/tzselect command in Shell scripts:
    Europe/Moscow
    

    Réglez l'horloge système sur le fuseau horaire souhaité en procédant comme suit:

    1. Remplacez le contenu de /etc/sysconfig/clock avec les éléments suivants:

      ZONE="<timezone>"
      UTC=true
      

      Par exemple:

      ZONE="Europe/Moscow"
      UTC=true
      

      Notez que UTC=true doit être défini ici, même si vous n'utilisez pas UTC comme fuseau horaire. Il s'agit de l'horloge matérielle du serveur, qui doit toujours être UTC, quel que soit le fuseau horaire de votre système.

    2. Remplace le /etc/localtime fichier avec un lien vers le fuseau horaire sélectionné:

      # ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime
      

      Par exemple:

      # ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
      # ln -snf /usr/share/zoneinfo/UTC /etc/localtime
      
  2. Réglez l'horloge manuellement à l'heure actuelle.

    1. Synchronisez l'horloge système avec l'heure actuelle:

      # ntpd -g -q
      
    2. Vérifiez que l'heure semble correcte:

      # date
      
    3. Synchronisez l'horloge matérielle du serveur avec l'horloge système:

      # hwclock -wu
      
  3. Redémarrer le PC. Le redémarrage est nécessaire car tous les services système doivent être redémarrés pour récupérer l'heure et le fuseau horaire corrigés, et l'horloge matérielle du serveur doit être testée (par exemple pour une batterie défectueuse).

    Après le redémarrage, vérifiez que le système affiche l'heure correcte et que ntpd fonctionne correctement.

23
Michael Hampton

le point est, assurez-vous que le fuseau horaire est le même que les cases que vous comparez

ÉDITER

si TZ est différent

/ etc/localtime

n'oubliez pas de prendre en compte le décalage UTC lors de la comparaison de l'heure système

0
nandoP