Linux'ta Uluslararası Atomik Saati almanın kolay yolu?


12

Sistemim, sistem saati için UTC'yi kullanıyor, bu da özellikle değişmek istemiyorum. Mevcut TAI zamanını almanın kolay bir yolu var mı? (tercihen bir komut satırı aracı veya bayrağı)


2
Bilgilendirme amacıyla UTC ve TAI arasındaki farkı elde etmek istiyor musunuz (ör. 12:30:13 UTC ve 12:30:45 TAI) veya üzerinde biriken farklılıkları telafi etmek için saati harici bir kaynaktan sıfırlamak istiyor musunuz? yerel sisteminiz?
Sven

1
Şu anda sadece bilgilendirme amaçlı. Ve programlamada kullanmak istersem, UTC'den farklı olarak TAI her zaman monoton olarak artıyor
JanKanis

Yanıtlar:


9

Linux'a TAI için yerel destek vermek için çalışmalar devam etmektedir. O zamana kadar, TAI'ye dönüştürmek için şema-saati kullanabilirsiniz.


Hmm, bu yüzden şu anda kolay bir destek yok, ancak çekirdek desteği geliyor ve daha sonra kullanıcı alanı yardımcı programlarının CLOCK_TAI seçeneğini desteklemesini beklememiz gerekiyor.
JanKanis

2

"Doğru /" saat dilimi ile cevap yanlış. TAI - 10'larda tutulan bir sistem saatinden UTC'ye dönüştürmek içindir. Böylece, UTC, GPS, LOREN ve TAI [1] için doğru zaman verir:

#!/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'

Doğru saat dilimleri farklı bir konumda olabilir, TZ = "sağ / UTC", TZ = "../ bölgebilgisi sıçramaları / UTC". "Now" ifadesini dönüştürmek istediğiniz tarih / saat ile değiştirin - çıktı 1/1/1980 tarihinden sonraki her tarih için doğrudur.

Çıktı:

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


Gerçekten benim cevabım konusunda haklısın. Kopyalanan örnekten de görebileceğiniz gibi, 2013'te eskiden çalışırdı. Ancak, bugün 2017'de TAI ve TZ='right/UTC' datebaskı olan şey arasında 10 saniye fark var .
Huygens

LÜTFEN AKLINIZDA BULUNDURUN: Artık saniye güncellendiğinde UTC, GPS ve TAI'ya göre ayarlanır. TAI (Temps Atomique International, SI saniyesinin sürekli sayımına dayanan uluslararası atom zaman ölçeğidir). 2019'da TAI, UTC ile 37 saniye ilerliyor. TAI her zaman 19 saniye GPS'in önünde. "../Leaps/UTC" uygulamasını güncel tutmak için bunu kullanan tüm sistemlerin güncellenmesi gerekir.
KevinM

1

Yanıt Onaylanmadı : bkz. Https://serverfault.com/a/812163/67419

TAI'nin yaklaşık değerini (<1s) görüntülemek için "sağ /" saat dilimini kullanabilirsiniz.

Ancak saat dilimi paketinizin güncel olduğundan emin olmanız gerekir (örn. Ubuntu'da tzdata).

Kod:

TZ='right/UTC' date

Misal:

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

Amortisman nedeni: 2013 ile bugün arasında, "sağ / UTC" saat dilimi TAI'ye değil, TAI - 10 saniyeye karşılık gelir. Ya da bir hata vardı.


-1

Yapması kolay: sadece bir /usr/sbin/ntpdate pool.ntp.org;/sbin/hwclock --systohc kez koş veya cron'a ekle. Günlük olarak ayarladım.


1
pool.ntp.orgHizmeti daha iyi dengelemek için sabit bir IP adresi yerine daha iyi bir şey kullanın .
Sven

4
ayrıca ntpdate yazarları onu bakımsız, eski ve kullanımdan kaldırılmış olarak etiketliyor. İnsanlar bunun yerine ntpd ve ntp-wait kullanmaya teşvik edilir. Saatinizin her zaman doğru olması, aniden periyodik olarak doğru zamana atlamaktan daha iyidir.
güveç

4
NTP'nin özellikle istediğim TAI zamanını değil UTC zamanını verdiğini düşünüyorum.
JanKanis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.