Come impostare l'ora corrente su Linux?


69

Perché l'output dei seguenti comandi è diverso?

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# 

E posso cambiare l'ora corrente su Linux?


1
Una rapida ricerca di Google restituisce questo link:> cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt

Risposte:


90

Di solito ti consigliamo di impostare l'ora automaticamente e, in tal caso, ti consigliamo ntpddi impostare l'ora automaticamente per te.

Le specifiche differiscono leggermente da una distribuzione all'altra, ma se stai usando Ubuntu, per esempio, c'è una guida sull'impostazione di NTP su Ubuntu . Altrimenti, solo Google ntpd <distribution-name>, e probabilmente lo troverai.

Se si desidera impostarlo manualmente, tuttavia, è possibile utilizzare date --set="<date string>". Esempi di questo potrebbero essere:

date --set="23 June 1988 10:00:00"
date --set="10:00:00"

37

Impostare l'orologio hardware sull'ora di sistema corrente.

# hwclock --systohc

Impostare l'ora di sistema dall'orologio hardware.

# hwclock --hctosys

23

giusto ntpdate ntp.ubuntu.come tutto andrà bene.

Ulteriori informazioni al riguardo sono disponibili nella documentazione ufficiale di Ubuntu


18
approfondisci ulteriormente la tua risposta e fornisci una spiegazione al QA e ai lettori futuri su cosa fa il comando che hai citato e perché raccomandi tale azione. nota: il QA ha chiesto come modificare l'ora, non come mantenerla sincronizzata.
Lorenzo Von Matterhorn,

1
@LorenzoVonMatterhorn ok
Gangsar Swapurba

Questo non ha ancora alcuna spiegazione. Cosa devo aspettarmi che accada se eseguo questo comando?
jerclarke,


1
Ha funzionato benissimo per impostare l'ora esatta.
Sabrina Gelbart,

13

Un altro problema comune e molto fastidioso è, quando viene selezionato il fuso orario sbagliato ...

Controlla il fuso orario con l'output della data:

$ data

Fre 23 ago 18:47:04 UTC 2013

Per correggere il tipo di fuso orario:

$ sudo tzselect

e seleziona la regione corretta con i numeri corrispondenti.

Un secondo compito è impostare l'ora corretta:

$ sudo date --set = "18:37:00"

O semplicemente prendi il tempo dall'orologio HW:

$ sudo hwclock --hctosys


3

In CentOSfusi orari si trovano in /usr/share/zoneinfo/, per modificare la data di sistema in un fuso orario specifico è possibile:

Innanzitutto, esegui un backup del file localtime esistente.

sudo mv /etc/localtime /etc/localtime.bak

Quindi, crea il link:

sudo ln -s /usr/share/zoneinfo/Europe/Lisbon  /etc/localtime

Controlla la nuova data di sistema digitando date.

Per regolare manualmente la data del sistema Linux è possibile digitare:

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

O

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

O

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

Per impostare l' orologio hardware sull'ora di sistema corrente:

hwclock --systohc

O

hwclock -w

1

"hwclock" è la data dell'hardware (macchina) e "date" è la data del software (sistema operativo).

Per modificare la data dell'hardware del PC:

hwclock --set --date="2013-7-31 09:30"

Per modificare la data del software:

date --set "2013-7-31 09:30"

1

Prova questo:

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

o

date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"

0

daterestituisce il tempo indicato come il momento dal momento in cui la CPU ha iniziato più il tempo hardware interno dato il tempo, hwclockdà il tempo che ha il clock interno.

Il tempo basato sulla CPU tende a spostarsi lungo il tempo in cui la macchina è in funzione, questa è la ragione dell'esistenza del hwclock --hctosyscomando. Inoltre è uno dei motivi alla base dell'utilizzo del Network Protocol Time, che viene utilizzato per coordinare il tempo a livello internazionale su Internet.


0

usa questo se non hai 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 nell'URL è il fuso orario locale

Puoi usare utc ... ed ecc


ma questo funziona per me: askubuntu.com/a/683136
user956584

0

posso cambiare l'ora corrente su Linux?

Per me, dovevo eseguire prima questo comando:

sudo systemctl stop systemd-timesyncd

Altrimenti, systemd ripristinerebbe immediatamente l'ora. Dopo aver arrestato il servizio systemd, l'esecuzione datefunziona come previsto:

$ sudo date -s 'january 1 1971'
Fri Jan  1 00:00:00 CET 1971
$ date
Fri Jan  1 00:00:00 CET 1971

Mentre il servizio era in esecuzione, il date -scomando sembrava funzionare, ma l'esecuzione dateun momento dopo mi avrebbe concesso di nuovo il tempo di sistema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.