Ubuntu sẽ tự động điều chỉnh đến bước nhảy vọt thứ hai vào cuối năm (2016)?


43

BBC báo cáo:

Một giây nữa sẽ được thêm vào đồng hồ của thế giới vào đêm giao thừa để duy trì đồng bộ với vòng quay của Trái đất.

Điều này có nghĩa là tôi phải làm bất cứ điều gì để máy Ubuntu của tôi theo kịp với điều này hay nó sẽ tự động điều chỉnh để không bị tắt lần thứ hai?


2
Bạn có thể thưởng thức video này (cũng thảo luận về những giây nhuận) youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen Oh, đó là Tom Scott!
Ismael Miguel

Câu trả lời:


34

Nếu máy Ubuntu của bạn nghe NTP và đồng bộ hóa thời gian với Internet, hệ thống sẽ tự động điều chỉnh sự khác biệt về thời gian.

Mặc dù máy tính của bạn có thể không nhất thiết phải nhận thức được thực tế rằng một bước nhảy vọt đã xảy ra, nó sẽ nắm bắt và ghi lại sự kiện này khi các máy chủ NTP thúc đẩy sự thay đổi trên internet.

Nếu bạn không cảm thấy như thêm một giây nữa, bạn có thể buộc cập nhật bằng lệnh sau:

sudo ntpdate -s pool.ntp.org

Điều này sẽ tự động thực hiện vị trí địa lý để cung cấp cho bạn một máy chủ gần đó (giảm lỗi độ trễ) và Ubuntu sẽ điều chỉnh cho múi giờ của bạn (vì vậy nếu máy chủ ở múi giờ khác, mọi thứ vẫn ổn). Ngoài ra, bạn có thể sử dụng ntp.ubuntu.com.

Lưu ý rằng nếu bạn không may mắn, không có máy chủ thời gian nào bạn đang sử dụng sẽ xử lý bước nhảy vọt thứ hai một cách chính xác. Điều đó là không thể, nhưng có thể. Nên kiểm tra thủ công đối với một nguồn tốt đã biết (radio analog, có thể là time.is ).


Ngoài ra, nếu bạn đang dùng phiên bản Ubuntu hiện đại, có một tiện ích tích hợp được gọi là timedatectl. Theo mặc định, điều này chạy một lần tự động khi khởi động. Do đó, khởi động lại nhanh có thể buộc đồng bộ hóa nếu cần thiết.


1
Ở Anh, sử dụng time.nist.gov vẫn hoạt động. Ubuntu điều chỉnh những gì nó báo cáo cho múi giờ của tôi. Tôi cho rằng điều tương tự cũng đúng với tất cả các múi giờ
Tim

2
@Tim Có, nhưng đồng bộ hóa với máy chủ ở Hoa Kỳ có độ trễ cao hơn = tỷ lệ lỗi cao hơn ... vì vậy nó hoạt động, nhưng kết quả cuối cùng ít chính xác hơn so với sử dụng máy chủ gần hơn.
Bakuriu

1
Hãy thử pool.ntp.orgthay thế; điều này luôn luôn nên chọn một cái gì đó tương đối gần với bạn.
Michael Hampton

3
Câu trả lời này có vấn đề. 1.) Nếu bạn không may mắn, không có máy chủ nào trong thời gian bạn sử dụng sẽ xử lý bước nhảy vọt thứ hai một cách chính xác. Điều đó là không thể, nhưng có thể. 2.) Nếu ntpdđang chạy, chạy ntpdateđồng thời sẽ gây nhầm lẫn. Tốt hơn để ngăn chặn nó đầu tiên. Tốt hơn hết, đừng chạy ntpdatechút nào. 3.) Các máy chủ thời gian NIST không cần thêm lưu lượng truy cập từ Stack Exchange; ntp.ubuntu.comhoặc pool.ntp.orgsẽ tốt hơn 4.) Vương quốc Anh thực sự sử dụng uk.pool.ntp.org, nhưng pool.ntp.orgdù sao cũng sẽ thực hiện định vị địa lý.
Matt Nordhoff

Tôi đã quên một. 5.) Nếu bạn đang chạy ntpdatetrên các máy chủ thời gian ngẫu nhiên và bạn lại rất không may mắn, bạn sẽ sử dụng một máy chủ không thể xử lý bước nhảy vọt thứ hai một cách chính xác! Nhóm NTP hủy kích hoạt các máy chủ đó một cách nhanh chóng, nhưng không phải ngay lập tức. Và các máy chủ chính phủ nổi bật không tốt hơn. (Mặc dù tôi nghĩ rằng những người NIST đã ở thời điểm này.)
Matt Nordhoff

17

Leap giây được xử lý tự động bởi nhân Linux, không yêu cầu khởi động lại hoặc đồng bộ hóa NTP để giữ thời gian thực tế. Nếu bạn nhìn vào nhật ký hệ thống của mình, bạn sẽ thấy một cái gì đó tương tự như

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

23:59:60không phải là thời gian Linux hợp lệ, đồng hồ của bạn sẽ đạt tới 00:00:00, sau đó quay lại 23:59:59. Bất kỳ đối tượng nào được tạo trong khoảng thời gian thứ hai đó (như tệp) có thể được ghi ngày không nhất quán.

Theo như thời gian của Linux (trái ngược với thời gian thực), giây nhuận không tồn tại:

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

2
Nhật ký của tôi xuất hiện để xác nhận câu trả lời này. Gần đây tôi đã chạy dmesg | grep 'leap second'trên máy chính 16.04 của mình và nó đã hiển thị [1153894.866672] Clock: inserting leap second 23:59:60 UTC. Điều này, chỉ với các số khác nhau lúc đầu, cũng được hiển thị trên máy ảo 16.04 tối thiểu của tôi, được cài đặt từ mini.iso, mà tôi sử dụng để thử nghiệm. Đó là hệ thống tối thiểu không có ntpdchạy, cũng không có một trong hai ntphoặc openntpdgói cài đặt.
Eliah Kagan

2
@EliahKagan Chắc chắn kernel không có danh sách tất cả các bước nhảy vọt trong tương lai. Hạt nhân có logic để chèn bước nhảy vọt thứ hai, nhưng một cái gì đó phải nói với hạt nhân rằng một bước nhảy vọt thứ hai sẽ được chèn vào. Tôi không biết bất cứ điều gì khác ngoài NTP có thể nói với kernel để chèn một bước nhảy vọt. Lưu ý rằng nếu kernel đã được hướng dẫn chèn một bước nhảy vọt, thì việc gỡ cài đặt NTP mà không cần khởi động lại sẽ khiến kernel ở trạng thái mà nó sẽ chèn một bước nhảy vọt.
kasperd

1
@kasperd Tôi đồng ý với lý luận chung của bạn, nhưng tôi không nghĩ NTP đã từng được cài đặt trong hệ thống đó, mà tôi đã thiết lập chỉ một vài (dù hơn một) ngày trước đó. Hai khả năng đến với tâm trí của tôi. Đây là một máy ảo VMware và mặc dù tôi chưa cài đặt bất kỳ trình điều khiển VMware nào, tôi tin rằng Ubuntu đã có một số. Có thể một trình điều khiển như vậy đã phát hiện ra bước nhảy vọt thứ hai từ máy chủ? Ngoài ra, tôi hy vọng NTP có liên quan trong quá trình cài đặt, mặc dù tôi không chắc nó được tạo ra như thế nào để hoạt động trên các lần khởi động lại. Tôi nghĩ rằng mini.isonó có NTP và trình cài đặt debian sử dụng nó.
Eliah Kagan

1
@EliahKagan, tôi đã không kiểm tra, nhưng ứng dụng khách ntp mặc định có thể là chrony.
Carsten S

2
@CarstenS Hóa ra systemd-timesyncd (8) đã đồng bộ hóa đồng hồ hệ thống tối thiểu của tôi. Tôi đã không nghĩ về điều này, và phát hiện ra một cách tình cờ: grep -RPis '(?<!mou)ntp' /var/logtiết lộ 14 dòng nhật ký hệ thống này , hiển thị đồng bộ hóa thời gian từ một máy chủ tình cờ có ntptên của nó. Nhìn lại, nó có ý nghĩa rằng dịch vụ bí ẩn mà tôi không bao giờ biết tôi có là một phần của systemd. (Btw, điểm hay về thời gian, mà tôi chưa kiểm tra, dù vậy nó chưa được cài đặt.)
Eliah Kagan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.