Comment régler l'heure sur Linux?

69

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?

Wuffers
la source
1
Une recherche rapide de Google renvoie ce lien:> cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt

Réponses:

90

Habituellement, vous voudrez que l'heure soit réglée automatiquement et, dans ce cas, vous voudrez configurer ntpdpour 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 sur la configuration de NTP sur Ubuntu . Sinon, juste Google ntpd <distribution-name>, et vous le trouverez probablement.

Si vous souhaitez le définir manuellement, vous pouvez toutefois l'utiliser date --set="<date string>". Des exemples de ceci pourraient être:

date --set="23 June 1988 10:00:00"
date --set="10:00:00"
Sebastian Paaske Tørholm
la source
37

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
Gjorgji Tashkovski
la source
23

juste ntpdate ntp.ubuntu.comet tout ira bien.

Il y a plus d'informations à ce sujet dans la documentation officielle Ubuntu

Gangsar Swapurba
la source
18
veuillez préciser votre réponse et fournir une explication à l'AQ et aux futurs lecteurs de ce que la commande que vous avez mentionnée fait et pourquoi vous recommandez une telle action. Remarque: le groupe d’assurance-qualité a demandé comment modifier l’heure et non la garder synchronisée.
Lorenzo Von Matterhorn
1
@ LorenzoVonMatterhorn ok
Gangsar Swapurba
Cela n'a toujours pas d'explication. À quoi dois-je m'attendre si j'exécute cette commande?
jerclarke
1
Très bien travaillé pour régler l'heure exacte.
Sabrina Gelbart
13

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

phylib
la source
3

Dans les CentOSfuseaux horaires sont situés dans /usr/share/zoneinfo/, pour changer la date du système à 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 du système en tapant date.

Pour ajuster manuellement la date du système Linux, vous pouvez taper:

date -s "11 MAR 2006 11:11:11"

OU

date --set="11 MAR 2015 11:11:11"

OU

date +%Y%m%d -s "20150311"

Pour régler l' horloge matérielle sur l'heure système actuelle:

hwclock --systohc

OU

hwclock -w
Pedro Lobito
la source
1

"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"
David Motilla
la source
1

Essaye ça:

date +%T -s "12:21:00"

ou

date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"
Zéro
la source
0

daterenvoie le temps donné, qui correspond au temps écoulé entre le démarrage du processeur et l'heure matérielle interne, hwclockdonne l'heure de l'horloge interne.

Le temps basé sur les processeurs a tendance à dériver tant que la machine est en marche, ce qui explique l'existence de la hwclock --hctosyscommande. C’est également l’une des raisons qui a motivé l’utilisation du temps de protocole réseau, qui est utilisé pour coordonner le temps à l’international sur Internet.

RedComet
la source
0

utilisez ceci si vous n'avez pas de client NTP

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

Ivaylo Mutafov
la source
mais celui-ci travaille pour moi: askubuntu.com/a/683136
user956584
0

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 se déroule datecomme 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 date -scommande semblait fonctionner, mais l'exécution d' dateun instant plus tard me donnait à nouveau l'heure système.

Luc
la source