Ubuntu는 연말 (2016)에 자동으로 윤초로 조정됩니까?


43

BBC 는 다음과 같이보고합니다.

새해 전날의 세계 시계에 지구의 회전 속도를 유지하기 위해 초가 추가됩니다.

이것은 우분투 머신이 이것과 시간을 맞추기 위해 무언가를해야한다는 것을 의미합니까?


2
이 동영상 (또한 윤초를 논의하는) 즐길 수 youtube.com/watch?v=-5wpm-gesOY
Thorbjørn Ravn 안데르센

1
@ ThorbjørnRavnAndersen 아, 그건 톰 스캇입니다!
Ismael Miguel

답변:


34

Ubuntu 시스템이 NTP를 수신하고 인터넷과 시간을 동기화하면 시스템은 시간의 차이에 따라 자동으로 조정됩니다.

컴퓨터가 윤초가 발생했다는 사실을 반드시 알고있는 것은 아니지만 NTP 서버가 인터넷을 통해 변경 사항을 푸시하면 이벤트를 포착하고 기록합니다.

여분의 초가 추가되지 않은 것 같으면 다음 명령을 사용하여 강제로 업데이트 할 수 있습니다.

sudo ntpdate -s pool.ntp.org

이렇게하면 자동으로 지리적 위치를 수행하여 가까운 서버를 제공하고 (지연 시간 오류 감소) 우분투는 시간대를 조정합니다 (따라서 서버가 다른 시간대에 있으면 여전히 괜찮습니다). 또는을 사용할 수 있습니다 ntp.ubuntu.com.

운이 좋지 않으면 사용중인 시간 서버 중 어느 것도 윤초를 올바르게 처리하지 못합니다. 가능하지는 않지만 가능합니다. 알려진 적절한 소스 (아날로그 라디오, 아마도 time.is )를 수동으로 확인하는 것이 좋습니다.


또는 최신 버전의 Ubuntu를 사용하는 경우라는 내장 유틸리티가 timedatectl있습니다. 기본적으로 시작시 자동으로 한 번 실행됩니다. 따라서 필요한 경우 빠른 재부팅으로 강제로 동기화 할 수 있습니다.


1
영국에서는 time.nist.gov를 사용해도 여전히 작동합니다. 우분투는 내 시간대에 대해보고하는 내용을 조정합니다. 모든 시간대에 대해서도 마찬가지입니다.
Tim

2
@Tim 예, 그러나 미국의 서버와 동기화하면 대기 시간이 길어지고 오류율이 높아 지므로 작동하지만 최종 결과는 더 가까운 서버를 사용하는 것보다 정확하지 않습니다.
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어쨌든 지리적 위치를 수행합니다.
매트 Nordhoff

나는 하나를 잊었다. 5.) ntpdate임의 시간 서버에 대해 실행 중이고 다시 운이 좋지 않으면 윤초를 올바르게 처리하지 못한 서버를 사용하게됩니다! NTP 풀은 이러한 서버를 빠르게 비활성화하지만 즉시 비활성화하지는 않습니다. 저명한 정부 서버는 더 나아지지 않습니다. (NIST 사람들이 이번에는 생각합니다.)
Matt Nordhoff

17

윤초는 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. 처음에 다른 숫자로 된 이것은 mini.iso테스트를 위해 사용하는 최소 16.04 VM에도 표시되었습니다 . 그 최소한의 시스템이없는 ntpd실행을 않으며이 있습니까 중 하나의 ntp또는 openntpd패키지가 설치되어 있어야합니다.
Eliah Kagan

2
@EliahKagan 확실히 커널에 하드 코드 된 모든 미래 윤초 목록이 없습니다. 커널에는 윤초를 삽입하는 논리가 있지만 윤초를 삽입해야한다는 것을 커널에 알려야합니다. 커널에 윤초를 삽입하도록 지시 할 수있는 NTP 이외의 것은 모른다. 커널이 이미 윤초를 삽입하도록 지시받은 경우 재부팅하지 않고 NTP를 제거하면 커널이 윤초를 삽입하는 상태로 남게됩니다.
kasperd

1
@kasperd 나는 당신의 일반적인 추론에 동의하지만, NTP가 그 시스템에 설치되어 있다고 생각하지 않습니다. 두 가지 가능성이 떠 오릅니다. 이것은 VMware 가상 머신이며 VMware 드라이버를 설치하지 않았지만 우분투에는 이미 일부가 있다고 생각합니다. 그러한 드라이버가 호스트 컴퓨터에서 윤초를 발견했을 수 있습니까? 그 외에도 NTP가 설치 중에 관여했을 것으로 예상되지만 재부팅 과정에서 어떻게 작동하는지 잘 모르겠습니다. mini.isoNTP가 있고 debian-installer가 NTP를 사용 한다고 생각 합니다.
Eliah Kagan

1
@EliahKagan, 확인하지 않았지만 기본 ntp 클라이언트는입니다 chrony.
Carsten S

2
@CarstenS systemd-timesyncd (8) 가 내 최소 시스템의 시계를 동기화하고 있음을 알 수 있습니다. 나는 이것을 생각하지 않았고 반 사고에 의해 발견되었습니다. 이 14 개의 syslog 라인을grep -RPis '(?<!mou)ntp' /var/log 공개 하여 이름에 있는 호스트의 시간 동기화를 보여줍니다 . 내 생각에, 내가 알지 못했던 신비한 봉사는 체계적인 부분 이었다는 것이 이치에 맞습니다. (Btw, chrony에 대한 좋은 점은, 아직 확인하지 않았지만 설치되지 않은 것입니다.)ntp
Eliah Kagan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.