Ubuntu จะปรับเป็นวินาทีกระโดดโดยอัตโนมัติเมื่อสิ้นปี (2559) หรือไม่


43

รายงานบีบีซี :

จะมีการเพิ่มวินาทีพิเศษในนาฬิกาโลกในวันส่งท้ายปีเก่าเพื่อให้สอดคล้องกับการหมุนของโลก

นี่หมายความว่าฉันต้องทำทุกอย่างเพื่อให้เครื่องอูบุนตูของฉันทันเวลาหรือจะปรับตัวเองโดยอัตโนมัติเพื่อไม่ให้เข้าที่สอง?


2
คุณอาจจะเพลิดเพลินกับวิดีโอนี้ (ซึ่งจะกล่าวถึงวินาทีกระโดด) youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersenโอ้นั่นคือ Tom Scott!
Ismael Miguel

คำตอบ:


34

หากเครื่องอูบุนตูของคุณฟัง NTP และซิงโครไนซ์เวลากับอินเทอร์เน็ตระบบจะปรับตัวเองโดยอัตโนมัติตามความแตกต่างของเวลา

ในขณะที่คอมพิวเตอร์ของคุณอาจไม่ได้ตระหนักถึงความจริงที่ว่าเผ่นวินาทีเกิดขึ้นมันจะจับและบันทึกเหตุการณ์เป็นเซิร์ฟเวอร์ NTP ผลักดันการเปลี่ยนแปลงทั่วอินเทอร์เน็ต

หากคุณไม่รู้สึกว่ามีการเพิ่มวินาทีพิเศษคุณสามารถบังคับให้อัปเดตโดยใช้คำสั่งต่อไปนี้:

sudo ntpdate -s pool.ntp.org

การดำเนินการนี้จะดำเนินการตามตำแหน่งทางภูมิศาสตร์โดยอัตโนมัติเพื่อให้เซิร์ฟเวอร์ใกล้เคียง (ลดข้อผิดพลาดในการตอบสนอง) และ Ubuntu จะปรับตามเขตเวลาของคุณ (ดังนั้นหากเซิร์ฟเวอร์อยู่ในเขตเวลาที่แตกต่างกัน ntp.ubuntu.comหรือคุณสามารถใช้

โปรดทราบว่าหากคุณโชคร้ายมากเซิร์ฟเวอร์เวลาที่คุณใช้อยู่จะจัดการวินาทีกระโดดอย่างไม่ถูกต้อง มันไม่น่าเป็นไปได้ แต่เป็นไปได้ ตรวจสอบด้วยตนเองกับแหล่งข้อมูลที่ดีที่รู้จัก (วิทยุอะนาล็อกอาจเป็นtime.is )


timedatectlหรือถ้าคุณอยู่ในรุ่นที่ทันสมัยของอูบุนตูมีการสร้างขึ้นในยูทิลิตี้ที่เรียกว่า โดยค่าเริ่มต้นสิ่งนี้จะทำงานโดยอัตโนมัติเมื่อเริ่มต้น ดังนั้นการรีบูตอย่างรวดเร็วสามารถบังคับให้ซิงค์ได้ถ้าจำเป็น


1
ในสหราชอาณาจักรการใช้ time.nist.gov ยังคงใช้ได้ Ubuntu ปรับสิ่งที่รายงานสำหรับเขตเวลาของฉัน ฉันคิดเหมือนกันว่าเป็นจริงสำหรับทุกเขตเวลา
ทิม

2
@Tim ใช่ แต่การซิงค์กับเซิร์ฟเวอร์ในสหรัฐอเมริกามี latency สูงกว่า = อัตราความผิดพลาดสูงขึ้น ... ดังนั้นจึงใช้งานได้ แต่ผลลัพธ์สุดท้ายนั้นแม่นยำน้อยกว่าเมื่อใช้เซิร์ฟเวอร์ที่ใกล้กว่า
Bakuriu

1
ลองpool.ntp.orgแทน สิ่งนี้ควรเลือกสิ่งที่ค่อนข้างใกล้เคียงกับคุณเสมอ
Michael Hampton

3
คำตอบนี้เป็นปัญหา 1. ) ถ้าคุณโชคไม่ดีไม่มีเซิร์ฟเวอร์เวลาที่คุณใช้จะจัดการวินาทีกระโดดอย่างถูกต้อง มันไม่น่าเป็นไปได้ แต่เป็นไปได้ 2. ) หากntpdใช้งานการรันntpdateพร้อมกันจะทำให้สับสน ดีกว่าที่จะหยุดมันก่อน ดีกว่ายังไม่ทำงานntpdateเลย 3. ) เซิร์ฟเวอร์เวลา NIST ไม่ต้องการปริมาณการใช้งานเพิ่มเติมจาก Stack Exchange ntp.ubuntu.comหรือpool.ntp.orgจะดีกว่า 4. ) สหราชอาณาจักรใช้งานจริงuk.pool.ntp.orgแต่pool.ntp.orgจะแสดงตำแหน่งทางภูมิศาสตร์ต่อไป
Matt Nordhoff

ฉันลืมไปหนึ่งอัน 5. ) หากคุณทำงานntpdateกับเซิร์ฟเวอร์สุ่มเวลาและคุณโชคไม่ดีอีกครั้งคุณจะใช้เซิร์ฟเวอร์ที่ไม่สามารถจัดการกับวินาทีกระโดดได้อย่างถูกต้อง! NTP Pool จะปิดการใช้งานเซิร์ฟเวอร์ดังกล่าวอย่างรวดเร็ว แต่ไม่ใช่ในทันที และเซิร์ฟเวอร์ของรัฐบาลที่โดดเด่นก็ไม่ได้ดีไปกว่านี้แล้ว (แม้ว่าฉันจะคิดว่าคน NIST เป็นเวลานี้)
แมตต์

17

Leap วินาทีได้รับการจัดการโดยอัตโนมัติโดยเคอร์เนล Linux ไม่ต้องรีบูตหรือซิงค์ NTP เพื่อให้เวลาจริง หากคุณดูในบันทึกของระบบคุณจะเห็นสิ่งที่คล้ายกับ

[263284.397894] Clock: inserting leap second 23:59:60 UTC

เนื่องจาก23:59:60ไม่ได้เป็นเวลาที่ถูกต้องลินุกซ์, นาฬิกาของคุณจะเข้าถึงแล้วย้อนกลับไป00:00:00 23:59:59วัตถุใด ๆ ที่สร้างขึ้นในช่วงที่สอง (เช่นไฟล์) สามารถลงวันที่ไม่สอดคล้องกัน

เท่าที่เกี่ยวข้องกับเวลาของ Linux (เมื่อเทียบกับเรียลไทม์) จะไม่มีการกระโดดวินาที:

# date -d "2016-12-31 23:59:59" +%s
1483225199
# date -d "2017-01-01 00:00:00" +%s
1483225200

2
บันทึกของฉันปรากฏขึ้นเพื่อยืนยันคำตอบนี้ ฉันเพิ่งวิ่งdmesg | grep 'leap second'บนหลัก 16.04 [1153894.866672] Clock: inserting leap second 23:59:60 UTCเครื่องของฉันและมันแสดงให้เห็นว่า สิ่งนี้เพิ่งมีตัวเลขต่างกันในตอนเริ่มต้นก็แสดงบน VM ขั้นต่ำ 16.04 ของฉันติดตั้งจากmini.isoที่ฉันใช้สำหรับการทดสอบ ระบบขั้นต่ำนั้นไม่ได้ntpdทำงานอยู่และไม่ได้ติดตั้งแพ็คเกจหรืออย่างใดอย่างหนึ่ง ntpopenntpd
Eliah Kagan

2
@EliahKagan แน่นอนเคอร์เนลไม่มีรายการของวินาทีเผ่นในอนาคตทั้งหมด hardcoded เคอร์เนลมีลอจิกแทรกวินาทีกระโดด แต่สิ่งที่ต้องบอกเคอร์เนลว่าแทรกวินาทีกระโดด ฉันไม่รู้อะไรเลยนอกจาก NTP ซึ่งสามารถบอกเคอร์เนลให้แทรกวินาทีกระโดดได้ โปรดสังเกตว่าหากเคอร์เนลได้รับคำสั่งให้แทรกเผ่นวินาทีแล้วการถอนการติดตั้ง NTP โดยไม่ต้องรีบูตจะทำให้เคอร์เนลอยู่ในสถานะที่จะแทรกวินาทีกระโดด
kasperd

1
@kasperd ฉันเห็นด้วยกับเหตุผลทั่วไปของคุณ แต่ฉันไม่คิดว่า NTP จะได้รับการติดตั้งในระบบนั้นซึ่งฉันตั้งค่าเมื่อไม่กี่วันก่อนหน้านี้ (มากกว่าหนึ่ง) ความเป็นไปได้สองอย่างที่อยู่ในใจของฉัน นี่เป็นเครื่องเสมือน VMware และแม้ว่าฉันไม่ได้ติดตั้งไดรเวอร์ VMware ใด ๆ แต่ฉันเชื่อว่า Ubuntu มีบางอย่างอยู่แล้ว คนขับเช่นนี้อาจพบข้อมูลเกี่ยวกับการกระโดดครั้งที่สองจากเครื่องโฮสต์หรือไม่? นอกเหนือจากนั้นฉันคาดหวังว่า NTP จะมีส่วนเกี่ยวข้องในระหว่างการติดตั้งแม้ว่าฉันจะไม่แน่ใจว่าวิธีการดังกล่าวทำงานได้อย่างไรในการรีบูตเครื่อง ฉันคิดว่าmini.isoตัวเองมี NTP และตัวติดตั้งเดเบียนใช้มัน
Eliah Kagan

1
@EliahKagan ผมไม่ได้ตรวจสอบ แต่ NTP chronyลูกค้าเริ่มต้นอาจจะ
Carsten S

2
@CarstenS ปรากฎsystemd-timesyncd (8)ทำการซิงโครไนซ์นาฬิการะบบขั้นต่ำของฉัน ฉันไม่ได้คิดเรื่องนี้และค้นพบโดยอุบัติเหตุครึ่ง: grep -RPis '(?<!mou)ntp' /var/logเผยให้เห็น14 บรรทัด syslogแสดงเวลาซิงค์จากโฮสต์ที่เกิดขึ้นntpในชื่อของมัน ในความเข้าใจย้อนหลังมันทำให้รู้สึกว่าบริการลึกลับที่ฉันไม่เคยรู้ว่าฉันได้เป็นส่วนหนึ่งของ systemd (Btw, ประเด็นที่ดีเกี่ยวกับความเป็นมาซึ่งฉันไม่ได้ตรวจสอบเช่นกัน แต่มันยังไม่ได้ติดตั้ง)
Eliah Kagan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.