Pourquoi le résultat des commandes suivantes est-il différent?
root@vmi2115:/var# hwclock
Sun 26 Jun 2011 01:21:38 PM CEST -0.273230 seconds
root@vmi2495:/var# date
Sun Jun 26 15:21:39 CEST 2011
root@vmi2115:/var#
Et puis-je changer l'heure sur Linux?
Habituellement, vous voudrez que l'heure soit réglée automatiquement, et dans ce cas, vous voudrez configurer ntpd
pour régler l'heure automatiquement.
Les spécificités diffèrent légèrement d’une distribution à l’autre, mais si vous utilisez Ubuntu, par exemple, il existe un guide pour la configuration de NTP sur Ubuntu . Autrement, il suffit de consulter Google ntpd <distribution-name>
et vous le trouverez probablement.
Si vous souhaitez le définir manuellement, vous pouvez utiliser date --set="<date string>"
. Des exemples de ceci pourraient être:
date --set="23 June 1988 10:00:00"
date --set="10:00:00"
Réglez l'horloge matérielle sur l'heure système actuelle.
# hwclock --systohc
Définissez l'heure système à partir de l'horloge matérielle.
# hwclock --hctosys
juste ntpdate ntp.ubuntu.com
et tout ira bien.
Il y a plus d'informations à ce sujet sur Documentation officielle Ubuntu
Un autre problème commun très ennuyeux est le choix du mauvais fuseau horaire ...
Vérifiez le fuseau horaire avec la sortie de date:
$ date
Fre 23 Août 18:47:04 UTC 2013
Pour corriger le type de fuseau horaire:
$ Sudo tzselect
et sélectionnez la région correcte avec les numéros correspondants.
Une deuxième tâche consiste à régler l'heure correcte:
$ Sudo date --set = "18:37:00"
Ou prenez simplement l'heure de l'horloge HW:
$ Sudo hwclock --hctosys
Dans CentOS
, les fuseaux horaires sont situés dans /usr/share/zoneinfo/
. Pour modifier la date du système en un {fuseau horaire spécifique}, vous pouvez:
Commencez par faire une sauvegarde du fichier localtime existant.
Sudo mv /etc/localtime /etc/localtime.bak
Ensuite, créez le lien:
Sudo ln -s /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
Vérifiez la nouvelle date système en tapant date
.
Pour ajuster le système Linux date manuellement, vous pouvez taper:
date -s "11 MAR 2006 11:11:11"
OR
date --set="11 MAR 2015 11:11:11"
OR
date +%Y%m%d -s "20150311"
Pour définir la horloge matérielle sur l'heure système actuelle:
hwclock --systohc
OR
hwclock -w
"hwclock" est la date du matériel (machine) et "date" est la date du logiciel (système d'exploitation).
Pour changer la date du matériel pc:
hwclock --set --date="2013-7-31 09:30"
Pour changer la date du logiciel:
date --set "2013-7-31 09:30"
Essaye ça:
date +%T -s "12:21:00"
ou
date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"
systemctl restart ntpd
fonctionne pour moi. Ceci s'applique à RHEL et à CENTOS OS.
puis-je changer l'heure sur Linux?
Pour moi, je devais d'abord exécuter cette commande:
Sudo systemctl stop systemd-timesyncd
Sinon, systemd réinitialiserait l'heure immédiatement. Après avoir arrêté le service systemd, l'exécution de date
fonctionne comme prévu:
$ Sudo date -s 'january 1 1971'
Fri Jan 1 00:00:00 CET 1971
$ date
Fri Jan 1 00:00:00 CET 1971
Pendant que le service était en cours d'exécution, la commande date -s
semblait fonctionner, mais exécuter date
un instant plus tard me donnait à nouveau l'heure systemd.
date
retourne l'heure indiquée comme étant l'heure à partir du moment où le processeur a démarré, plus l'horloge interne du matériel, hwclock
donne l'heure de l'horloge interne.
Les temps basés sur les processeurs ont tendance à varier tant que la machine est en marche, ce qui explique l'existence de la commande hwclock --hctosys
. C’est également l’une des raisons qui a motivé l’utilisation du temps de protocole réseau, qui sert à coordonner le temps sur Internet au niveau international.
Pour définir le fuseau horaire de votre horloge système, procédez comme suit:
cp /usr/share/zoneinfo/America/La_Paz /etc/localtime
utilisez ceci si vous n'avez pas NTP client
date -s $(wget -q -O - http://www.timeapi.org/eest/now | cut -d '+' -f 1 | tr -d : | tr -d - | tr -d T | cut -c 1-12)
eest in URL est votre fuseau horaire local.
Vous pouvez utiliser utc ... et etc