เมื่อฉันสอบถามสถานะของ NTP daemon ด้วยntpdc -c sysinfo
ฉันจะได้รับผลลัพธ์ต่อไปนี้:
system peer: 0.0.0.0
system peer mode: unspec
leap indicator: 11
stratum: 16
precision: -20
root distance: 0.00000 s
root dispersion: 12.77106 s
reference ID: [73.78.73.84]
reference time: 00000000.00000000 Thu, Feb 7 2036 7:28:16.000
system flags: auth monitor ntp kernel stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.000000 s
authdelay: 0.000000 s
สิ่งนี้บ่งชี้ว่าการซิงค์ NTP ล้มเหลว อย่างไรก็ตามเวลาของระบบนั้นแม่นยำภายใน 1 วินาที เมื่อฉันรันระบบโดยไม่มีการเชื่อมต่อเครือข่ายในช่วงเวลาเดียวกับที่ฉันทำตอนนี้เวลาของระบบจะเบี่ยงเบน ~ 10s
พฤติกรรมนี้แสดงให้เห็นว่าระบบมีวิธีการซิงค์เวลาอื่น ฉันรู้ว่ามีsystemd-timesyncd.service
(ด้วยไฟล์กำหนดค่าที่/etc/systemd/timesyncd.conf
) และtimedatectl status
ทำให้ฉันมีเวลาที่ถูกต้อง:
Local time: Thu 2016-08-25 10:55:23 CEST
Universal time: Thu 2016-08-25 08:55:23 UTC
RTC time: Thu 2016-08-25 08:55:22
Time zone: Europe/Berlin (CEST, +0200)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2016-03-27 01:59:59 CET
Sun 2016-03-27 03:00:00 CEST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2016-10-30 02:59:59 CEST
Sun 2016-10-30 02:00:00 CET
ดังนั้นคำถามของฉันคือความแตกต่างระหว่างกลไกทั้งสองคืออะไร หนึ่งในนั้นเลิกใช้หรือไม่ พวกเขาสามารถใช้ในแบบคู่ขนาน? ฉันควรไว้วางใจข้อใดเมื่อฉันต้องการสอบถามสถานะการซิงค์ NTP
(โปรดทราบว่าฉันมีระบบที่แตกต่างกัน (ในเครือข่ายที่แตกต่างกัน) ซึ่งทั้งสองวิธีแสดงถึงความสำเร็จและให้เวลาที่ถูกต้อง)