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.
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.
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:
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.
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
Réglez l'horloge manuellement à l'heure actuelle.
Synchronisez l'horloge système avec l'heure actuelle:
# ntpd -g -q
Vérifiez que l'heure semble correcte:
# date
Synchronisez l'horloge matérielle du serveur avec l'horloge système:
# hwclock -wu
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.
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