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?
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?
Risposte:
Di solito ti consigliamo di impostare l'ora automaticamente e, in tal caso, ti consigliamo ntpd
di 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"
Impostare l'orologio hardware sull'ora di sistema corrente.
# hwclock --systohc
Impostare l'ora di sistema dall'orologio hardware.
# hwclock --hctosys
giusto ntpdate ntp.ubuntu.com
e tutto andrà bene.
Ulteriori informazioni al riguardo sono disponibili nella documentazione ufficiale di Ubuntu
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
In CentOS
fusi 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
"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"
date
restituisce il tempo indicato come il momento dal momento in cui la CPU ha iniziato più il tempo hardware interno dato il tempo, hwclock
dà 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 --hctosys
comando. Inoltre è uno dei motivi alla base dell'utilizzo del Network Protocol Time, che viene utilizzato per coordinare il tempo a livello internazionale su Internet.
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
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 date
funziona 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 -s
comando sembrava funzionare, ma l'esecuzione date
un momento dopo mi avrebbe concesso di nuovo il tempo di sistema.