Bagaimana waktu disimpan di Raspberry Pi?

17

Bagaimana waktu disimpan pada Raspberry Pi dengan rilis Raspbian terbaru? Apa yang mengatur jam internal dari server NTP? Apa yang terjadi ketika tidak ada server NTP yang tersedia?

Dari program saya, saya mencoba untuk menentukan apakah waktu telah diatur dari NTP dan meminta pengguna untuk mengaturnya jika belum.

Orang
sumber
kemungkinan duplikat Seberapa akurat ketepatan waktu Raspberry Pi?
Piotr Kula
4
Jika time.now <dari tahun 2010 - maka waktu tidak diatur. Anda tidak perlu tahu hal lain. Waktu tidak dihemat saat daya mati dan akan menjadi tahun 1970 sesuai spesifikasi UNIX / POSIX. Untuk mengetahui apakah waktu tidak akurat, Anda perlu menanyakan NTP dan membandingkan waktu setempat. Anda tidak dapat menentukan apakah waktu tidak selaras tanpa meminta server waktu.
Piotr Kula
4
jika time.now <2010 tidak akan berfungsi karena RPi menetapkan waktu saat ini dari waktu shutdown terakhirnya. Inilah mengapa saya ingin tahu bagaimana waktu diatur sehingga saya dapat menonaktifkan perilaku ini jika perlu.
Guy
pumkin - bagaimana pertanyaan ini terkait dengan penyimpangan jam internal?
Guy
1
Mungkin judul pertanyaan ini harus lebih spesifik untuk menghindari tumpang tindih antara pertanyaan-pertanyaan ini.
XTL

Jawaban:

22

Raspbian memiliki dua solusi perangkat lunak untuk ketepatan waktu. Karena NTP memerlukan koneksi jaringan dan itu tidak berguna jika Raspberry Pi Anda tidak terhubung ke jaringan, itu juga menggunakan jam palsu . Ini menyimpan jam saat ini secara berkala dan memuatnya saat startup.

pi@raspberrypi ~ $ cat /etc/fake-hwclock.data 
2012-08-15 03:17:01

Ini tidak terlalu akurat, tetapi akan menghilangkan masalah waktu perjalanan kembali ke 1970 setelah setiap reboot.

asalamon74
sumber
Tebakan bagus Jivings! :-)
Piotr Kula
@ asalamon74: dapatkah Anda menambahkan cara menonaktifkan false-hwclock atau perlu dihapus?
Guy
2

Anda dapat mencatat statistik NTP dan kemudian mengurai log dari program Anda.

Pengaturan daemon NTP disimpan dalam file /etc/ntp.conf. Batalkan komentar dengan arahan statsdiruntuk mengaktifkan pencatatan statistik NTP. Pastikan direktori yang direferensikan ada dan dapat ditulis untuk pengguna ntpd.

Dawid Ferenczy Rogožan
sumber
1

Untuk memeriksa apakah waktu telah ditentukan oleh server NTP Anda dapat mencoba menggunakan ntpq -p Anda akan mendapatkan sesuatu seperti ini *:

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*223.212.138.2    .MRS.           1 u  424  512  377    4.080   -4.551  21.857
+ts0.tttsc.nvm.e  .GPS.           1 u  387  512  363    1.304   -7.563  28.405
+218.89.10.3      217.13.17.82    2 u  334  512  377    1.853   -4.562  19.474

'Jangkauan' akan> 0 di beberapa baris jika server NTP telah tercapai dan dengan demikian mengatur waktu. Ini adalah 8 bit geser sepanjang yaitu 0,1,3,7,17,37,77,177,377

Atau ini - Anda dapat grep 'strata' <16 atau sync_ntp (ini jelas bukan pada RPi)

$ ntpq -c rl
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Mon Jul 18 09:22:49 UTC 2013 (1)",
processor="x86_64", system="Linux/2.6.32-431.29.2.el6.x86_64", leap=00,
stratum=4, precision=-21, rootdelay=40.242, rootdisp=315.102,
refid=192.168.1.123,
reftime=d82131cd.fbb96c5e  Thu, Nov 27 2014 13:14:53.983,
clock=d82138e6.fd03bdd1  Thu, Nov 27 2014 13:45:10.988, peer=61770, tc=9,
mintc=3, offset=5.214, frequency=52.475, sys_jitter=12.217,
clk_jitter=23.319, clk_wander=1.373
$

Atau (saya pikir ntpstat tidak tersedia segera di RPi)

$ ntpstat
synchronised to NTP server (192.168.1.123) at stratum 4
   time correct to within 310 ms
   polling server every 512 s

dan kode penggunaan keluar terlalu dijelaskan di sini http://www.cyberciti.biz/faq/linux-unix-bsd-is-ntp-client-working/ diakui tidak spesifik RPI ...

* Alamat server waktu tidak nyata

xcxc
sumber
-1

Ketepatan waktu semua dalam perangkat lunak. Tanpa menggunakan NTP tidak ada ketepatan waktu.

Jika Anda ingin memeriksa apakah jam telah diset maka gunakan saja dateuntuk melihat apakah itu menunjukkan zaman Unix, yang akan menjadi default Pi.

Jivings
sumber
2
Salah. RPi mengatur waktu saat ini dari waktu shutdown terakhir ketika tidak ada koneksi jaringan. Jadi jam selalu beberapa waktu acak lebih awal dari waktu yang benar, tidak perlu zaman Unix.
Guy
2
Itu tentu tidak benar pada Pi saya. Jika saya mem-boot-nya tanpa koneksi jaringan maka saatnya adalah zamannya. Saya bisa melihat ini sekarang.
Jivings
2
Mungkin tergantung pada distribusinya.
Alex Chamberlain
1
@AlexChamberlain Sepertinya ada perbedaan yang aneh.
Jivings
1
@Jivings Jika ada perangkat lunak pada Raspbian disebut fake-hwclock, itu mungkin tidak akan ada di Arch. Kedengarannya seperti jenis bulu yang diabaikan Arch.
Alex Chamberlain