Monday, January 20, 2014

ntpdate: Adjust time or Step time

ในบางครั้งที่เราทำการ Update time โดยใช้คำสั่ง ntpdate ก็จะแสดงผลลัพธ์ว่า  time จะมีการ offset ไปมากน้อยเท่าไหร่ จาก Log ด้านล่าง

20 Jan 09:50:49 ntpdate[4732]: adjust time server 202.28.214.2 offset 0.021757 sec

20 Jan 09:51:04 ntpdate[4733]: step time server 202.28.214.2 offset 0.015320 sec


ทุกอย่างก็ดูเหมือนจะปกติ แต่ว่า มีบางอย่างที่แตกต่างกันคือ คำว่า adjust time กับ step time ซึ่งบางครั้งที่เราใช้คำสั่ง ก็จะขึ้นว่า  adjust time แต่บางครั้งเหมือนกันก็จะขึ้นข้อความว่า  step time ทั้งสองคำนี้ มีความหมายแตกต่างกันอย่างไร

step time
เป็นอะไรที่เราคาดหวังว่า เมื่อเราใช้คำสั่ง ntpdate แล้ว เวลาใน server ของเรา จะเปลี่ยนไปตามเวลาของที่เราไป Update โดยทันที

adjust time
หากว่า Log ขึ้นประโยคนี้ นั่นหมายความว่า เวลาของ Server ของเรานั้น จะไม่ได้เปลี่ยนแปลงทันทีตามเวลาที่เราไปขอ Update แต่จะค่อย ๆ ปรับเปลี่ยนทีละน้อยจนกระทั่งเวลาทั้งสองที่ตรงกัน

หากค่า Offset ระหว่าง Server เรา กับ Time server มีค่าแตกต่างกันมาก ๆ (หมายถึง แตกต่างกันหลาย ๆ วินาที) Step time จะมีข้อเสียเรื่องของเวลาที่ Diff กันอย่างกระทันหัน  ทั้งในเรื่อง Timestamps ของ Log file ที่อาจจะผิดพลาดไป รวมถึง Application บางอย่างที่มีการอ้างอิงกับเวลาในเครื่อง อาจจะทำงานผิดพลาดได้

ในการที่เราจะบังคับว่า ทุก ๆ ครั้งที่เราใช้คำสั่ง ntpdate จะให้ทำการ update time แบบ Step time หรือ Adjust time นั้น ให้เราเพิ่ม option ลงไปหลังคำสั่ง ntpdate ดังนี้

-b  เป็นการบังคับให้ update time แบบ Step time
-B  เป็นการบังคับให้ update time แบบ Adjust time

ตัวอย่าง

root@localhost:~# ntpdate -b pool.ntp.org
20 Jan 10:11:33 ntpdate[5150]: step time server 124.109.2.169 offset 0.046398 sec

root@localhost:~# ntpdate -B pool.ntp.org
20 Jan 10:11:44 ntpdate[5156]: adjust time server 124.109.2.169 offset 0.000313 sec


ที่มา:http://www.noah.org/wiki/Ntpd