Qual è il comando per aggiornare l'ora e la data da Internet


133

Qual è il comando per aggiornare l'ora e la data da Internet? Esiste un'applicazione che mi consente di farlo dalla sua interfaccia utente piuttosto che dalla shell?


Riesci a identificare quale versione di Ubuntu stai usando?
david6,

1
Hai bisogno di tempo estremamente preciso? (In tal caso, è necessario acquisire familiarità con ntpq e scegliere time server). Se desideri che l'ora sia (approssimativamente) corretta, prova: Impostazioni di sistema >> Ora e data e controlla che " Imposta l'ora " sia impostato su " Automaticamente da Internet ".
david6

Se vuoi essere sempre estremamente preciso, installa ntpd. Questo è un piccolo processo che viene eseguito in background e regola il tempo costantemente invece di raffiche / salti, ma richiederà un po 'delle tue risorse.
strugee,


1
Questa domanda è di fondamentale importanza al giorno d'oggi. Ultimamente è diventato molto complicato: alcuni PC usano chrony o ntpd, trovano sempre un motivo per NON aggiornare l'ora (l'orologio è troppo sbagliato , vincere problemi relativi al doppio avvio, ntp può anche rifiutarsi di fidarsi delle fonti di clock che non hanno Internet). Inoltre, se hai un PC con Internet, ma un orologio sbagliato, poiché ora browser e siti web ti costringono a utilizzare HTTPS, si bloccherà perché l'orologio è sbagliato e non puoi nemmeno google su come risolverlo! Sarebbe bello se ci fosse una risposta che affronti tutti i casi. "Impostare l'orologio a mano" è il più affidabile la società ...
BCT

Risposte:


145

Puoi farlo con ad es sudo ntpdate time.nist.gov. Altri server includono time.windows.com, ecc.

http://www.pool.ntp.org/ elenca i time server di tutto il mondo.


5
Ricevo un errorethe NTP socket is in use, exiting
friederbluemle l'

7
@friederbluemle Come detto in questa risposta , devi interrompere il servizio ntp sudo service ntp stop. Quindi è possibile utilizzare il comando suggerito nella risposta e infine è possibile riavviare il servizio consudo service ntp start
Michele

Funziona, ma non aggiorna automaticamente l'orologio nella barra delle applicazioni.
posfan12,

4
Viene visualizzato l'errore "ntpdate [15806]: nessun server adatto per la sincronizzazione trovato". La seconda risposta che segue utilizzando google.com funziona meglio
Kim Stacks

7
ntpdate: comando non trovato
rogerdpack

134

Questo è un bel codice che ho trovato per aggiornare il tuo tempo in caso di problemi con ntp:

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

Bella soluzione!
Farid Rn,

Molto bello, ha funzionato per me.
Janderson Silva,

8
Questa dovrebbe essere la risposta accettata!
Brioni

Questo frammento è arrivato al mio arsenale! ;)
Dave Amit il

2
Questo è buono, ma di solito sarà tra 8 e 50 ms in quanto non si sincronizza da solo.
Nonny Moose,

48

A partire dal 2018 con un nuovo Ubuntu 16.04 LTS installato, l'esecuzione sudo ntpdate time.nist.govdà:

sudo: ntpdate: command not found

Questo perché ( fonte ufficiale ):

ntpdateè considerato deprecato a favore timedatectle quindi non più installato di default.

Invece, fai questo per forzare la sincronizzazione adesso:

sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

Nel mio caso stavo eseguendo un Ubuntu su una virtualbox e avevo salvato lo stato della macchina, quindi quando ho riavviato l'istanza di nuovo non ha sincronizzato automaticamente l'orologio poiché non c'era alcun evento di avvio per attivare la sincronizzazione. Quindi il tempo stava ancora mostrando quello che era l'ultima volta che stavo eseguendo la scatola virtuale.


Ho appena eseguito l'aggiornamento a bionic e ho notato che ntpdate non funzionava più e timedatectl ha funzionato per me.
Kapad,

1
Ha funzionato anche per me, su Ubuntu 18.04.
kiamlaluno,

Se l'ora non cambia, controlla il tuo fuso orario con solo timedatectl. Se è sbagliato, vedere la --helpsezione per il comando su come modificarlo.
Brad Turek,

1
Bella cattura per la Virtual Box. Ho risparmiato molto mal di testa da debug!
Mohd Abdul Mujib,

14

L'esecuzione di questo comando in un terminale dovrebbe fare il trucco

sudo dpkg-reconfigure tzdata

Puoi aggiungere ulteriori fusi orari graficamente, penso, facendo clic sull'orologio e passando attraverso le sue opzioni.


I fusi orari non sono realmente gli stessi del tempo (preciso). Ma non è neppure chiaro cosa chiedesse Vikramjeet .
david6,

Qual è il comando per aggiornare l'ora e la data da Internet è la domanda, sudo dpkg-reconfigure tzdata è la risposta, quindi cosa dà? il commento sui fusi orari, è legato all'unica cosa che so essere possibile graficamente
Jayo

Ho supposto che da graficamente intendevano una grafica (o 'GUI') il metodo, e non geografiche (o in tutto il mondo).
david6

così anch'io, non sono a conoscenza di un modo per aggiornare graficamente la data e l'ora tramite la rete , quindi uso il terminale, quello che so come fare graficamente è impostare i fusi orari, la parte sui fusi orari era i miei due centesimi su cosa si può fare per influenzare il tempo in modo grafico , per quanto ne sapevo, sono capito adesso?
Jayo,

12

È molto facile da configurare dalla riga di comando: https://help.ubuntu.com/lts/serverguide/NTP.html Da quel link:

Ubuntu viene fornito con ntpdate di serie e lo eseguirà una volta all'avvio per impostare l'orario in base al server NTP di Ubuntu: ntpdate -s ntp.ubuntu.com

Ecco un esempio di GUI https://help.ubuntu.com/community/UbuntuTime#Time_Synchronization_using_NTP


6
Si prega di non utilizzare collegamenti ad altri siti. Quando scompaiono, così fanno le informazioni che hai pubblicato. Impedire che il "link rot" si verifichi rispondendo al contenuto del link (e dare credito nel caso in cui sia dovuto il credito).
Rinzwind,

4

La maggior parte qui non funziona, poiché ntp sovrascriverà le impostazioni in pochi secondi.

Devi prima disabilitare NTP. Su Ubuntu è fatto come:

    # Disable ntp
    sudo timedatectl set-ntp 0

Quindi puoi fare:

    # Set software clock 
    sudo date --set="2018-04-01 22:22:22"
    # Sync with hardware clock 
    sudo hwclock --systohc

3
dateFromServer=$(curl -v --silent https://google.com/ 2>&1 \
   | grep Date | sed -e 's/< Date: //'); date +"%d%m%Y%H%M%S" -d "$dateFromServer"

o

date -s `curl -I 'https://startpage.com/' 2>/dev/null | grep -i '^date:' | sed 's/^[Dd]ate: //g'`

1
Il modo standard di impostare la data e l'ora connettendosi con i server dell'ora tramite ntp. Perché stai usando connessioni https per fare questo?
Xiota,

1
//, A volte è bello avere un'alternativa al modo standard, immagino.
Nathan Basanese,

2
Il mio ISP stava bloccando il mio server NTP
Tyler il

1

Devi installare il ntppacchetto. Le impostazioni di data / ora sono disponibili nelle impostazioni di sistema. Ecco qualche informazione in più.


2
Il link è morto ... Come detto da Rinzwind "Ti preghiamo di non utilizzare i link ad altri siti. Quando scompaiono, così fanno le informazioni che hai pubblicato. Prevenire il" rot rot del link ", rispondendo con il contenuto del link (e dare credito dove è dovuto il credito). " Grazie
Michele,

1

Esiste un'applicazione che mi consente di farlo dalla sua interfaccia utente piuttosto che dalla shell?

Sto usando 17.10 e posso andare su Impostazioni (dal menu in alto a destra nell'interfaccia utente)> Dettagli> Data e ora. Nel mio caso, il mio sistema non si stava aggiornando da Internet anche se "Data e ora automatiche" erano impostate su "ON". L'ho semplicemente cambiato in "OFF", ho atteso un secondo, quindi l'ho cambiato in "ON". Raccolse la data e l'ora correnti ed ero pronto per partire.


0

Grazie a Twiglets [per router AsusWRT / Merlin]

Ecco un'alternativa che fissa la data !!! [opzione -s]. Stampa la 'Data' che recupera e la 'Data' che è impostata per il confronto.

Su AsusWRT / Merlin, l'unica cosa strana è che la data recuperata è ".... GMT" e l'utilità della data imposta l'ora corretta ma la cambia in "... DST" L'ambiente ha TZ impostato su "GMT"

datetext=$(curl -I 'https://1.1.1.1/' 2>/dev/null | grep "Date:" |sed 's/Date: [A-Z][a-z][a-z], //g'| sed 's/\r//') ; echo "Date Retrieved = $datetext" ; echo -n "Date set = " ; date -s "$datetext" -D'%d %b %Y %T %Z'
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.