Ubuntu si adatterà automaticamente al secondo bisestile alla fine dell'anno (2016)?


43

La BBC riporta:

Un secondo in più verrà aggiunto agli orologi del mondo alla vigilia di Capodanno per rimanere in sincronia con la rotazione della Terra.

Questo significa che devo fare qualcosa in modo che la mia macchina Ubuntu si tenga al passo con questo o si adatterà automaticamente per non essere un secondo fuori?


2
Potrebbe piacerti questo video (che discute anche dei secondi bisestili) youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen Oh, quello è Tom Scott!
Ismael Miguel,

Risposte:


34

Se la tua macchina Ubuntu ascolta NTP e sincronizza l'ora con Internet, il sistema si adeguerà automaticamente alla differenza di orario.

Mentre il tuo computer potrebbe non essere necessariamente consapevole del fatto che è accaduto un secondo balzo, catturerà e registrerà l'evento mentre i server NTP spingono il cambiamento su Internet.

Se non ritieni che venga aggiunto il secondo extra, puoi forzare un aggiornamento usando il comando seguente:

sudo ntpdate -s pool.ntp.org

Questo eseguirà automaticamente la geolocalizzazione per darti un server vicino (riducendo l'errore di latenza) e Ubuntu si adatterà al tuo fuso orario (quindi se il server si trova in un fuso orario diverso, va ancora tutto bene). In alternativa, puoi usare ntp.ubuntu.com.

Nota che se sei molto sfortunato, nessuno dei time server che stai utilizzando gestirà correttamente il secondo balzo. È improbabile, ma possibile. Si consiglia di verificare manualmente una sorgente nota nota (radio analogica, possibilmente time.is ).


In alternativa, se utilizzi una versione moderna di Ubuntu, c'è un'utilità integrata chiamata timedatectl. Per impostazione predefinita, questo viene eseguito automaticamente una volta all'avvio. Pertanto, un riavvio rapido può forzare una sincronizzazione, se necessario.


1
Nel Regno Unito, l'utilizzo di time.nist.gov funziona ancora. Ubuntu regola ciò che riporta per il mio fuso orario. Presumo che lo stesso vale per tutti i fusi orari
Tim

2
@Tim Sì, ma la sincronizzazione con un server negli Stati Uniti ha una latenza più elevata = tasso di errore più elevato ... quindi funziona, ma il risultato finale è meno preciso rispetto all'utilizzo di un server più vicino.
Bakuriu,

1
Prova pool.ntp.orginvece; questo dovrebbe sempre raccogliere qualcosa di relativamente vicino a te.
Michael Hampton,

3
Questa risposta è problematica. 1.) Se sei molto sfortunato, nessuno dei time server che utilizzerai gestirà correttamente il secondo salto. È improbabile, ma possibile. 2.) Se ntpdè in esecuzione, l'esecuzione ntpdatesimultanea lo confonderà. Meglio fermarlo prima. Meglio ancora, non correre ntpdateaffatto. 3.) I time server NIST non necessitano di traffico aggiuntivo da Stack Exchange; ntp.ubuntu.como pool.ntp.orgsarebbe meglio. 4.) Il Regno Unito effettivamente utilizza uk.pool.ntp.org, ma pool.ntp.orgeseguirà comunque la geolocalizzazione.
Matt Nordhoff,

Ne ho dimenticato uno. 5.) Se corri ntpdatecontro server casuali e sei di nuovo molto sfortunato, ne userai uno che non è riuscito a gestire correttamente il secondo balzo! Il pool NTP disattiva tali server rapidamente, ma non all'istante. E i server governativi di spicco non sono migliori. (Anche se penso che quelli del NIST fossero questa volta.)
Matt Nordhoff il

17

I secondi di salto vengono gestiti automaticamente dal kernel Linux, non è necessario riavviare o sincronizzare NTP per mantenere il tempo effettivo. Se guardi nel tuo registro di sistema, vedrai qualcosa di simile a

[263284.397894] Clock: inserting leap second 23:59:60 UTC

Poiché 23:59:60non è un orario Linux valido, il tuo orologio raggiungerà 00:00:00, quindi fai un passo indietro 23:59:59. Qualsiasi oggetto creato in quel secondo (come file) può essere datato in modo incoerente.

Per quanto riguarda il tempo di Linux (al contrario del tempo reale), i secondi di salto non esistono:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200

2
I miei registri sembrano confermare questa risposta. Recentemente ho funzionato dmesg | grep 'leap second'sulla mia macchina principale 16.04 e ha mostrato [1153894.866672] Clock: inserting leap second 23:59:60 UTC. Questo, solo con numeri diversi all'inizio, è stato mostrato anche sulla mia VM 16.04 minima, installata da mini.iso, che utilizzo per i test. Quel sistema minimo non è in ntpdesecuzione, né ha installato uno dei pacchetti ntpoopenntpd .
Eliah Kagan,

2
@EliahKagan Sicuramente il kernel non ha un elenco di tutti i secondi bisestili hardcoded. Il kernel ha la logica per inserire il secondo di salto, ma qualcosa deve dire al kernel che deve essere inserito un secondo di salto. Non conosco altro che NTP che possa dire al kernel di inserire un secondo bisestile. Si noti che se al kernel è già stato richiesto di inserire un secondo intercalare, la disinstallazione di NTP senza riavviare lascerà il kernel in uno stato in cui verrà inserito un secondo intercalare.
Kasperd,

1
@kasperd Sono d'accordo con il tuo ragionamento generale, ma non credo che NTP sia mai stato installato in quel sistema, che ho impostato solo pochi (anche se più di uno) giorni prima. Mi vengono in mente due possibilità. Questa è una macchina virtuale VMware e, sebbene non abbia installato alcun driver VMware, credo che Ubuntu ne abbia già alcuni. Un tale driver potrebbe aver scoperto il secondo salto dal computer host? A parte questo, mi aspetto che NTP sia stato coinvolto durante l'installazione, anche se non sono sicuro di come sia stato fatto funzionare durante i riavvii. Penso che mini.isoabbia NTP e che il debian-installer lo usi.
Eliah Kagan,

1
@EliahKagan, non ho verificato, ma potrebbe essere il client ntp predefinito chrony.
Carsten S,

2
@CarstenS Si scopre che systemd-timesyncd (8) ha sincronizzato l'orologio del mio sistema minimo. Non ci avevo pensato, e l'ho scoperto per caso: ho grep -RPis '(?<!mou)ntp' /var/logrivelato queste 14 righe di syslog , mostrando sincronizzazioni temporali di un host che sembra avere ntpnel suo nome. Con il senno di poi, ha senso che il misterioso servizio che non ho mai saputo di avere faceva parte di systemd. (A proposito, buon punto su Chrony, che non avevo nemmeno verificato; non è installato, però.)
Eliah Kagan
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.