In che modo Ubuntu sincronizza il tempo senza ntp?


39

Facendo clic su "Impostazioni di sistema -> Ora e data -> Automaticamente da Internet" posso sincronizzare l'ora da Internet.

Tuttavia, trovo che non ho un ntpddemone (non è nemmeno installato). Quindi, come funziona la sincronizzazione?


6
Si noti che l'interfaccia è, IMHO, fuorviante. Dovrebbe essere un pulsante e non un interruttore perché attiva un'azione one-shot, usando ntpdate, --- devi installare manualmente ntpper avere la sincronizzazione del tempo continouos con Internet. L'ho segnalato in bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…
Rmano,

Non sono sicuro che sia fuorviante. Avevo l'impressione che eseguisse ntpdate una volta ad ogni avvio, a meno che questa opzione non fosse disabilitata. Qualcuno può confermare?
thomasrutter,

su Kubuntu 16.04, il widget orologio non mostra nemmeno l' Automatically from the Internetopzione o nulla di simile.
kmonsoor,

Risposte:


38

Questo viene fatto sincronizzando con lo ntpdatestrumento.

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

Puoi farlo con

sudo ntpdate TIME-SERVER

Gli elenchi di TIME SERVER possono essere trovati qui


6
ma la domanda è: ntpdate non è installato di default su Ubuntu, quindi come fa mai Ubuntu a sincronizzare l'ora?
John Allard,

2
Nota: questa risposta accettata è molto obsoleta. Nelle versioni recenti di Ubuntu (16.04+), al posto di ntpdate viene utilizzato timedatectl. timedatectl controlla il servizio timesyncd di systemd.
Corey Goldberg,

Sì, questa risposta è fuori tema. Non è "come sincronizzare il tempo senza ntpd + ntpq", ma "Come UBUNTU lo fa senza uno dei precedenti (ntpdate / ntpq). Ho trovato questa domanda subito dopo aver notato che il mio orologio è sincronizzato e mi aspettavo che fosse spento di almeno una dozzina di secondi (Ubuntu 18.04). Ricordo anche l'inferno di un NTPd in ​​piena regola, quando si rifiuta di sincronizzare il tempo "troppo lontano" ecc. E ora - l'orologio è sincronizzato! Magia.
Tomasz Gandor

21

Ubuntu si sincronizza con l' ntpdateutilità una volta ogni volta che si verifica la connessione di rete (cosa che di solito accade all'avvio).

Questa utility è installata per impostazione predefinita, ma funziona solo quando Ubuntu la chiama e non rimane in esecuzione in background come demone.

L'installazione del ntppacchetto installa il demone NTP. Il demone ntp consente di sincronizzare continuamente l'ora mentre il sistema è in esecuzione.


Aggiornamento : nelle versioni recenti di Ubuntu (ad es. 16.04) ntpdateviene sostituito da timedatectl, che si sincronizza una volta all'avvio e quando si verifica una rete, ma non continua a funzionare in altre occasioni. Vedi https://help.ubuntu.com/lts/serverguide/NTP.html per ulteriori informazioni.


4
Non è ad ogni avvio, di per sé; segui dpkg-query --listfiles ntpdatea /etc/network/if-up.d/ntpdate.
ændrük,

1
Ah grazie, quindi suppongo sia ogni volta che viene visualizzata l'interfaccia di rete, che non sarà necessariamente ogni avvio per tutti.
thomasrutter,

ah sei sicuro che questo sia installato di default? Sono seduto su una nuova istanza del server Ubuntu 16.04 e non è installato alcun programma di utilità ntpdate.
John Allard,

ntpdate è stato installato per impostazione predefinita nel 14.04 ma non più nel 16.04, ora è considerato obsoleto e timedatectlfunziona allo stesso modo: è installato per impostazione predefinita e si sincronizza una volta all'avvio, ma anche quando si verifica una rete.
Thomas Rutter

12

Per quelli di voi con la sincronizzazione dell'ora 16.04 LTS sembra essere gestita da sytemd specificamente "timedatectl"

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Config è

/etc/systemd/timesyncd.conf

Maggiori informazioni qui: sincronizzazione dell'ora con NTP E timedatectl


1
Questa è la risposta migliore al momento. Il resto è praticamente fuori tema (tranne quelli modificati, che menzionano systemd-timedatectl).
Tomasz Gandor,

2

Si noti inoltre che è possibile che ci sia un'interfaccia front-end per un servizio che non è installato.

È possibile modificare le impostazioni nell'interfaccia front-end (GUI) come desiderato, ma se il servizio che esegue effettivamente le attività non è installato, non accadrà nulla.

Si noti tuttavia che ritengo che lo "switch" sia valido perché gli dice di eseguire l'aggiornamento una tantum all'avvio di EACH. (o per non farlo).

A meno che non si tratti di un sistema non collegato alla rete o ci siano altri motivi imperativi per NON impostare l'ora in modo che corrisponda all'ora "standard", ti esorto caldamente a installare ntpd, a configurarlo ed eseguirlo correttamente.


1

Fare riferimento a: https://help.ubuntu.com/community/UbuntuTime

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. Tuttavia, è probabile che l'orologio di un sistema vada alla deriva considerevolmente tra i riavvii se il tempo tra i riavvii è lungo. In tal caso ha senso correggere l'ora occasionalmente. Il modo più semplice per farlo è ottenere cron per eseguirlo ogni giorno.

ntpdate ntp.ubuntu.com

Oppure puoi usare ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ) per mantenere la sincronizzazione.
Gaurav,

Cordiali saluti, la pagina che hai ref.ed non è stata aggiornata per il 16.04 a partire da ora, quindi non molto utile.
kmonsoor,

1

Per qualche ragione, il 16.04, la risposta di Maythux non funziona immediatamente.

Ma prendendo il comando da lì, questo ha funzionato per me.

$ sudo ntpdate-debian

Si prega di notare che richiede sudoprivilegi, ovviamente.

Sotto il cofano, utilizza lo ntpdatestrumento, differenziando solo il file di configurazione.

ntpdate-debian è identico ntpdate(8) tranne per il fatto che utilizza la configurazione /etc/default/ntpdateper impostazione predefinita. ntpdate imposta la data e l'ora locale eseguendo il polling dei server Network Time Protocol (NTP).


16.04 usa systemd, quindi mi aspetto che abbia un nuovo comando equivalente da usare.
Rinzwind,

@Rinzwind sarebbe fantastico, ovviamente. Sfortunatamente, la pagina presumibilmente principale sul wiki di Ubuntu non è aggiornata per il 16.04. Mostra un messaggio che dice "Questo articolo deve essere aggiornato per includere le ultime versioni di Ubuntu".
kmonsoor,

Almeno in 14.04 sudo ntpdate-debianfa lo stesso di sudo ntpdate ntp.ubuntu.com. Lo strano è perché hanno scelto e modificato questo pacchetto da debian quando l'abbiamo letto is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaulte catturato questo file che leggiamo NTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"???
utile il

1

Bene, le versioni successive di Ubuntu lo fanno spesso usando chrony che è un'implementazione alternativa di ntp con alcune differenze: -

  1. Alcune delle funzionalità ntp utilizzate più raramente non sono implementate
  2. Tenta di affrontare bene la situazione in cui si ha un accesso intermittente alla rete: quando è collegato, sincronizza l'orologio locale e tiene traccia della velocità con cui va alla deriva. Quando è disconnesso, utilizza l'orologio locale, ma regola l'ora per consentire come va alla deriva.

Vedi https://chrony.tuxfamily.org/ per maggiori informazioni.

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.