Come modificare la data e l'ora del server Ubuntu dalla riga di comando?


40

La data e l'ora correnti del server Ubuntu sono diverse dalla data e l'ora del fuso orario. Ho provato ad usare:

sudo date "30 Sep 2015 4:43:42"

per cambiarlo ma non ha cambiato la data e l'ora, ho appena stampato sul terminale la data e l'ora che ho cambiato, ma quando ho eseguito:

sudo hwclock --show

La data e l'ora sono ancora quelle precedenti.

Qual è il modo corretto per cambiare la data e l'ora di Ubuntu Server?


hai davvero digitato "sudo date newdate" - la parola "newdate"?
Wolfgang,

1
No. Ho modificato la mia domanda. Ho scritto "30 settembre 2015 4:43:42"
Priska Aprilia il

Risposte:


68

È possibile impostare la data di sistema con questo comando:

sudo date --set="2015-09-30 10:05:59.990"

Quindi, quando si utilizza date, dovrebbe essere mostrato correttamente.

Ora dovresti anche impostare l'orologio hardware nel BIOS del sistema, in modo che l'impostazione persista al riavvio (durante l'avvio il tempo di sistema è impostato sul valore dell'orologio hardware). Fallo con hwclock:

sudo hwclock --systohc

Questo ottiene il valore degli orologi di sistema (sys) e imposta l'orologio hardware (hc). Controllalo con il hwclockcomando. Entrambi hwclocke datedovrebbero ora mostrare la stessa data e ora.


Per impostare il fuso orario , è possibile utilizzare questo comando:

sudo dpkg-reconfigure tzdata

A proposito : se si utilizza una macchina come server, si consiglia vivamente di utilizzare un client NTP per sincronizzare il tempo sulla rete . Quindi puoi garantire che tutti i tuoi server abbiano lo stesso orario impostato. Questo sincronizzerà il tempo mentre la macchina è in funzione. Se hai applicazioni che dipendono dal tempo sincronizzato sul server, consiglio NTP-Daemon. Più a lungo corre in background, più preciso è il tempo.


1
Ho perso il passaggio di sincronizzazione dell'orologio. Grazie per la tua risposta, mi ha aiutato!
Priska Aprilia,

1
3 opzione aiuta, è cambiato ecc / timezone =) come php.net/manual/en/timezones.php !!! assolutamente identico !!!
Vladimir Ch,

@VladimirCh Fortunatelly i nomi dei fusi orari sono stadarizzati, quindi non è necessario apportare modifiche tra i sistemi. Oh, aspetta ... ci sono anche alcune versioni di Microsoft ...
PeterM

1
Cerco di cambiare ma non sta cambiando: - $ sudo date --set = "30/09/2015 alle 10: 05: 59.990" mer 30 set 10:05:59 +0530 2015 $ date gio 23 maggio 15:10:37 +0530 2019
Vinod,

7
  1. Cerca il tuo fuso orario
timedatectl list-timezones
  1. Imposta il tuo fuso orario
sudo timedatectl set-timezone America/Toronto
  1. Abilitare timesyncd
sudo timedatectl set-ntp on

Con questo, il tempo dovrebbe essere impostato e sincronizzato.

Puoi vedere di più su questo tutorial: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04


1
Il modo migliore per risolverlo senza impostare manualmente ore e minuti! Molte grazie!
Rafael Moni,

4

Non mi piace impostare manualmente l'ora del sistema. Quindi per risolvere questo problema ho dovuto combinare due diverse risposte.
Per correggere l'ora di sistema devi usare questo codice:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

come indicato in questa risposta
Quindi si sincronizza l'orologio hardware con l'orologio di sistema usando

sudo hwclock --systohc

come indicato da @chaos in questo thread.


1

basta digitare

sudo date newdatestring

con newdatestring nel formato nnddhhmmyyyy.ss

  • nn: il mese (a due cifre) (da 01 a 12)
  • dd: il giorno (a due cifre) (da 01 a 31), con le regole regolari per i giorni in base al mese e all'anno applicabili
  • hh: l'ora (a due cifre) (da 00 a 23)
  • mm: il minuto (a due cifre) (da 00 a 59)
  • yyyy: l'anno; può essere a due o quattro cifre
  • ss è di due cifre secondi (da 00 a 59). Si noti il ​​periodo "." prima della ss.

Ma a parte il comando data, forse preferisci la "soluzione" NTP (protocollo orario di rete): Serverguide - NTP , molto più facile da gestire e più preciso rispetto all'impostazione della data a mano. Puoi usare un cronjob o il demone ntp (ntpd) per aggiornare il tuo tempo ogni x ore / minuti ...

Spero che sia di aiuto!


intervallo di date non valido quando ho provato con "093005082015.15", che corrisponde al 30 settembre 2015, 05:08:15
Priska Aprilia,

sudo date "093005082015.15" lavorando sul mio.
vusan,

0

Per coloro che cercano la versione dei secondi

  1. Imposta la data e l'ora correnti

    sudo date -s @1565864862
  2. Ottieni la data e l'ora correnti

    date +%s
    

    uscite 1565864862

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.