bagaimana cara memeriksa apakah NTP menyesuaikan waktu sistem di Linux?

18

Saya memiliki mesin yang mengalami beberapa masalah dengan beberapa hal real time yang saya jalankan. Salah satu petunjuk yang saya miliki adalah bahwa daemon NTP mungkin telah memindahkan waktu, menyebabkan batas waktu palsu.

Bagaimana saya mengetahui jika NTP daemon memang memindahkan waktu? Ada log? Saya melihat daemon NTP restart di / var / log / messages, tetapi saya tidak tahu apakah penyesuaian waktu juga harus ada.

untuk mengklarifikasi: Saya perlu memahaminya dari log, setelah acara. Mungkin 2 hari setelah waktu disesuaikan. Menjalankan perintah untuk melihat status saat ini tidak membantu.

n-alexander
sumber

Jawaban:

8

Anda dapat menggunakan ntpdc -c sysinfoperintah untuk menanyakan status ntpd. Ini mengembalikan output yang mirip dengan ini:

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      338.44917 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  8:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.003998 s
authdelay:            0.000000 s
Janne Pikkarainen
sumber
4

File drift (/ var / lib / ntp / drift) tidak mengukur perbedaan antara waktu lokal dan waktu yang dihitung oleh ntpd berdasarkan server waktu yang dihubungi.

Alih-alih itu adalah perkiraan penyimpangan (kesalahan frekuensi) dari jam lokal (dalam ppm). Nilai ini diperbarui oleh ntpd sekali dalam satu jam dan tidak berkurang dari waktu ke waktu.

Sejauh yang saya tahu nilai digunakan oleh ntpd setelah reboot untuk memperkirakan seberapa salah jam lokal (jam lokal berjalan bahkan ketika mesin dimatikan).

Contoh: Isi file: 5 Mesin dimatikan 1 hari (86400 dt) 5 ppm dari 86400 adalah 0,432 => Jam lokal 0,432 dt "di masa depan"

Poinnya adalah: - ntpd sekarang dapat menerapkan koreksi perkiraan pertama ke waktu setempat (-0,432 dt) segera setelah memulai - ntpd segera tahu, seberapa salahnya jam lokal (dalam contoh ini: 5 ppm)

(Saya tidak diizinkan mengomentari komentar Sirex jadi saya menambahkan komentar baru)

Martin Schneeweis
sumber
3

Anda harus memiliki nilai dalam file drift. Lokasinya akan berada di /etc/ntp.conf Anda

misal: "driftfile / var / lib / ntp / drift"

file ini digunakan untuk mencatat seberapa jauh jam Anda dari seharusnya, dan perlahan-lahan ntp akan menurunkan nilai ini seiring berjalannya waktu. - Tidak akan melakukannya dalam sekali jalan karena itu dapat menyebabkan masalah timestamping pada sistem.

Sirex
sumber
ini info bagus, terima kasih. Namun, setelah waktu dipindahkan, ini akan menjadi 0 dan saya akan kehilangan informasi saya. Tidak ntp mencatat pesan apa pun untuk memberi tahu saya bahwa itu sudah selesai?
n-alexander
3

ntpq -nc peers akan menunjukkan status sinkronisasi Anda dengan semua rekan.

BillThor
sumber
2

Maaf ini adalah utas lama - harap saya belum melanggar aturan di sini :)

Di /etc/ntp.conf, saya memiliki baris yang terlihat seperti ini:

#statsdir /var/log/ntpstats/

Deskripsi mengatakan untuk menghapus tanda komentar pada baris ini untuk mencatat statistik. Saya baru saja mengatur ntp di server kami, jadi saya tidak yakin apa itu log, tapi saya akhirnya mencari informasi yang sama, jadi semoga ini akan membantu orang lain.

dsl101
sumber