Modo semplice per ottenere l'International Atomic Time su Linux?


12

Il mio sistema utilizza UTC per l'orologio di sistema, che non mi va di cambiare. C'è un modo semplice per ottenere l'ora TAI corrente? (preferibilmente uno strumento da riga di comando o un flag)


2
Vuoi ottenere la differenza tra UTC e TAI a scopo informativo (ad es. 12:30:13 UTC e 12:30:45 TAI) o vuoi ripristinare l'orologio da una fonte esterna per compensare le differenze accumulate su il tuo sistema locale?
Sven

1
Al momento solo a scopo informativo. E nel caso in cui volessi mai usarlo nella programmazione, dal momento che TAI, a differenza di UTC, è sempre monotonicamente crescente
JanKanis,

Risposte:


9

Sono in corso lavori per fornire supporto nativo Linux per TAI. Fino ad allora, puoi usare lo schema-orologio per convertire in TAI.


Hmm, quindi non esiste attualmente alcun supporto facile, ma il supporto del kernel è in arrivo e quindi dobbiamo solo attendere che le utility userland supportino l'opzione CLOCK_TAI.
JanKanis,

2

La risposta con il fuso orario "giusto /" non è corretta. È pensato per convertire da un orologio di sistema tenuto in TAI - 10s in UTC. Pertanto, quanto segue fornisce l'ora corretta in UTC, GPS, LOREN e TAI [1]:

#!/bin/sh
echo -n "UTC:   "; TZ='UTC' date
echo -n "GPS:   "; TZ='UTC' date --date='TZ="../leaps/UTC" now -9 seconds'
echo -n "LORAN: "; TZ='UTC' date --date='TZ="../leaps/UTC" now'
echo -n "TAI:   "; TZ='UTC' date --date='TZ="../leaps/UTC" now 10 seconds'

I fusi orari corretti potrebbero trovarsi in una posizione diversa, TZ = "right / UTC", TZ = "../ zoneinfo-jump / UTC". Sostituisci "adesso" con la data / ora che desideri trasformare: l'output è corretto per ogni data successiva all'1 / 1/1980.

Produzione:

UTC:   Sun Oct 30 16:28:30 UTC 2016
GPS:   Sun Oct 30 16:28:47 UTC 2016
LORAN: Sun Oct 30 16:28:56 UTC 2016
TAI:   Sun Oct 30 16:29:06 UTC 2016

[1] http://www.leapsecond.com/java/gpsclock.htm


In effetti hai ragione sulla mia risposta. Come puoi vedere dall'esempio copiato, nel 2013 funzionava. Tuttavia, oggi nel 2017 ho una differenza di 10 secondi tra TAI e ciò che TZ='right/UTC' datesta stampando.
Huygens,

NOTA: UTC viene regolato rispetto a GPS e TAI quando vengono aggiornati i secondi intercalari. TAI (Temps Atomique International, è la scala temporale atomica internazionale basata su un conteggio continuo del secondo SI). Nel 2019 TAI è in vantaggio su UTC di 37 secondi. TAI è sempre davanti al GPS di 19 secondi. Qualsiasi sistema che utilizza questo deve essere aggiornato, per mantenere "../leaps/UTC" aggiornato.
KevinM,

1

La risposta è obsoleta : consultare /server//a/812163/67419

È possibile utilizzare il fuso orario "destra /" per visualizzare un'approssimazione (<1s) del TAI.

Ma devi assicurarti che il pacchetto del fuso orario sia aggiornato (ad es. Tzdata su Ubuntu).

Codice:

TZ='right/UTC' date

Esempio:

$ date -u ; TZ='right/UTC' date
Mon Sep 16 13:36:21 UTC 2013
Mon Sep 16 13:35:56 UTC 2013

Motivo dell'ammortamento: tra il 2013 e oggi, il fuso orario "destra / UTC" corrisponde a TAI - 10 secondi e non a TAI. O c'era un bug.


-1

È facile da fare: basta eseguirlo /usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc una volta o aggiungerlo a cron. L'ho impostato su tutti i giorni.


1
Meglio usare qualcosa di simile pool.ntp.orginvece di un indirizzo IP fisso per bilanciare meglio il servizio.
Sven

4
anche gli autori di ntpdate lo etichettano come non mantenuto, obsoleto e deprecato. Le persone sono incoraggiate a usare ntpd e ntp-wait invece. È meglio avere sempre l'orologio sempre corretto piuttosto che farlo saltare periodicamente all'ora corretta periodicamente.
stufato il

4
Penso che NTP emetta l'ora UTC, non l'ora TAI che ho richiesto espressamente.
JanKanis,
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.