우분투 서버는 한 번에 정확히 5 분을 잃습니다. 것 같습니다. 이

우분투 서버 12.04 인 내 서버에서 시간을 잃는 것을 발견했습니다. CMOS 배터리에 결함이있어 하드웨어 시계가 꺼져 있거나 죽어가는 것을 알았습니다. 드리프트가 수정 될 수 있도록 NTP를 설치했지만 아무 소용이 없습니다. 하루 동안 20 분 정도 손실됩니다.

디버깅하기 위해 원격 서버 시간을 확인하는 작은 크론 작업을 만들었습니다. 스크립트는 현지 시간과 원격 시간의 차이를 초 단위로 계산합니다. 이 테스트 중에 NTP 서비스가 실행되고 있지 않았습니다 .

결과는 흥미로웠다. 하루 동안 정확히 5 분 동안 여러 번지는 것 같습니다. 이 로그를보십시오 (초 단위로 표시된 원격 서버와의 차이).

Tue Oct 23 03:30:02 CEST 2012: 284
Tue Oct 23 03:35:02 CEST 2012: 284
Tue Oct 23 03:40:01 CEST 2012: 285
Tue Oct 23 03:45:02 CEST 2012: 285
Tue Oct 23 03:50:02 CEST 2012: 285
Tue Oct 23 03:55:02 CEST 2012: 284
Tue Oct 23 04:00:02 CEST 2012: 284
Tue Oct 23 04:05:01 CEST 2012: 285
Tue Oct 23 04:10:01 CEST 2012: 285
Tue Oct 23 04:15:02 CEST 2012: 585
Tue Oct 23 04:20:02 CEST 2012: 584
Tue Oct 23 04:25:02 CEST 2012: 584
Tue Oct 23 04:30:02 CEST 2012: 584
Tue Oct 23 04:35:01 CEST 2012: 585
Tue Oct 23 04:40:01 CEST 2012: 585
Tue Oct 23 04:45:02 CEST 2012: 585
Tue Oct 23 04:50:02 CEST 2012: 584
Tue Oct 23 04:55:02 CEST 2012: 584
Tue Oct 23 05:00:02 CEST 2012: 584
Tue Oct 23 05:05:01 CEST 2012: 585
Tue Oct 23 05:10:01 CEST 2012: 585
Tue Oct 23 05:15:02 CEST 2012: 585
Tue Oct 23 05:20:02 CEST 2012: 584
Tue Oct 23 05:25:02 CEST 2012: 584
Tue Oct 23 05:30:02 CEST 2012: 584
Tue Oct 23 05:35:01 CEST 2012: 585
Tue Oct 23 05:40:01 CEST 2012: 585
Tue Oct 23 05:45:02 CEST 2012: 584
Tue Oct 23 05:50:02 CEST 2012: 584
Tue Oct 23 05:55:02 CEST 2012: 584
Tue Oct 23 06:00:02 CEST 2012: 584
Tue Oct 23 06:05:03 CEST 2012: 584
Tue Oct 23 06:10:02 CEST 2012: 584
Tue Oct 23 06:15:01 CEST 2012: 585
Tue Oct 23 06:20:02 CEST 2012: 584
Tue Oct 23 06:25:02 CEST 2012: 584
Tue Oct 23 06:30:02 CEST 2012: 584
Tue Oct 23 06:35:02 CEST 2012: 584
Tue Oct 23 06:40:02 CEST 2012: 584
Tue Oct 23 06:45:01 CEST 2012: 585
Tue Oct 23 06:50:02 CEST 2012: 584
Tue Oct 23 06:55:01 CEST 2012: 585
Tue Oct 23 07:00:02 CEST 2012: 584
Tue Oct 23 07:05:02 CEST 2012: 584
Tue Oct 23 07:10:02 CEST 2012: 584
Tue Oct 23 07:15:02 CEST 2012: 584
Tue Oct 23 07:20:02 CEST 2012: 584
Tue Oct 23 07:25:02 CEST 2012: 584
Tue Oct 23 07:30:01 CEST 2012: 585
Tue Oct 23 07:35:02 CEST 2012: 584
Tue Oct 23 07:40:02 CEST 2012: 584
Tue Oct 23 07:45:02 CEST 2012: 584
Tue Oct 23 07:50:02 CEST 2012: 584
Tue Oct 23 07:55:02 CEST 2012: 584
Tue Oct 23 08:00:01 CEST 2012: 585
Tue Oct 23 08:05:02 CEST 2012: 584
Tue Oct 23 08:10:02 CEST 2012: 584
Tue Oct 23 08:15:02 CEST 2012: 584
Tue Oct 23 08:20:02 CEST 2012: 584
Tue Oct 23 08:25:02 CEST 2012: 584
Tue Oct 23 08:30:01 CEST 2012: 585
Tue Oct 23 08:35:02 CEST 2012: 584
Tue Oct 23 08:40:02 CEST 2012: 584
Tue Oct 23 08:45:02 CEST 2012: 584
Tue Oct 23 08:50:02 CEST 2012: 584
Tue Oct 23 08:55:02 CEST 2012: 584
Tue Oct 23 09:00:02 CEST 2012: 584
Tue Oct 23 09:05:03 CEST 2012: 584
Tue Oct 23 09:10:02 CEST 2012: 584
Tue Oct 23 09:15:02 CEST 2012: 584
Tue Oct 23 09:20:02 CEST 2012: 584
Tue Oct 23 09:25:02 CEST 2012: 584
Tue Oct 23 09:30:01 CEST 2012: 584
Tue Oct 23 09:35:02 CEST 2012: 584
Tue Oct 23 09:40:02 CEST 2012: 584
Tue Oct 23 09:45:02 CEST 2012: 584
Tue Oct 23 09:50:02 CEST 2012: 584
Tue Oct 23 09:55:02 CEST 2012: 584
Tue Oct 23 10:00:01 CEST 2012: 584
Tue Oct 23 10:05:02 CEST 2012: 584
Tue Oct 23 10:10:07 CEST 2012: 584
Tue Oct 23 10:15:02 CEST 2012: 584
Tue Oct 23 10:20:02 CEST 2012: 884
Tue Oct 23 10:25:02 CEST 2012: 884
Tue Oct 23 10:30:02 CEST 2012: 883
Tue Oct 23 10:35:01 CEST 2012: 884
Tue Oct 23 10:40:02 CEST 2012: 884
Tue Oct 23 10:45:02 CEST 2012: 884
Tue Oct 23 10:50:02 CEST 2012: 884
Tue Oct 23 10:55:02 CEST 2012: 1184
Tue Oct 23 11:00:02 CEST 2012: 1183
Tue Oct 23 11:05:01 CEST 2012: 1184
Tue Oct 23 11:10:02 CEST 2012: 1184
Tue Oct 23 11:15:02 CEST 2012: 1184
Tue Oct 23 11:20:02 CEST 2012: 1184

내 생각에 이것은 CMOS 배터리에 결함이없는 것 같습니다. 하지만 어떻게 생각하세요?

편집하다:

NTP를 활성화하면 ntpq -p의 출력입니다.

remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
dns02.wsrs.net  .INIT.          16 u    -   64    0    0.000    0.000   0.000
brick.steinhoff 71.40.128.157    3 u    1   64    1  144.031  1499785   0.002
chime6.surfnet. .PPS.            1 u    -   64    1   22.663  1499789   0.002
ntp0.mediamatic .INIT.          16 u    -   64    0    0.000    0.000   0.002
europium.canoni .INIT.          16 u    -   64    0    0.000    0.000   0.002

편집 2 :

ntpdate 후 ntp.ubuntu.com

remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
kvm01.roethof.n 213.154.236.182  3 u   10   64    1   34.918   -1.980   0.002
ntp0.bbactive.e 193.79.237.14    2 u    9   64    1   58.378    6.956   0.002
16-164-ftth.ons 193.79.237.14    2 u    8   64    1   30.202    5.697   0.002
kameli.miuku.ne 62.237.86.238    2 u    7   64    1  106.975   -9.806   0.002
europium.canoni 193.79.237.14    2 u    6   64    1   42.010    6.381   0.002


답변

CMOS 배터리에 결함이있어 하드웨어 시계가 꺼져 있거나 죽어가는 것을 알았습니다.

CMOS 클럭은 운영 체제를 부팅 할 때만 읽습니다.

드리프트가 수정 될 수 있도록 NTP를 설치했지만 아무 소용이 없습니다.

NTP는 큰 오프셋을 수정하기위한 것이 아닙니다. 을 사용하여 수정 ntpdate한 다음 ntpd를 시작하고 몇 시간 후에 확인 ntpq -p하고 알려주는 내용을 이해해야합니다. 그런 다음 syslog에서 NTP 불만을 찾으십시오.

NTP가 실행 중이지만 때로는 300 초가 빠지는 경우가 있습니다.

그렇다면 syslog에 NTP 주석이 표시 될 것으로 예상됩니다. 문제가 발생한시기를 정확하게 알려줍니다. 아마도 이것은 cron 작업이나 외부 이벤트와 일치합니다. 나는 그런 단서를 추적 할 것이다. 하드웨어 오류로 인해 한 번에 5 분 동안 시스템이 정지되고 있는지 알 수 있다고 가정합니다.


NTP 문제 해결

NTP 문제 해결, 특히 “알려진 문제”섹션을 읽었습니다 .


모니터링 시간

해롤드는 이미 대본을 가지고 있으며 다른 사람들에게는 여기 몇 가지 아이디어가 있습니다.

불량 서버에서 RFC868 시간 프로토콜 사용

vi /etc/xinetd.d/time-stream
# change `disable=yes` to `disable=no`
kill -HUP $(cat /var/run/xinetd.pid)

goodserver에서 cron을 사용하여 1 분에 한 번 예약

date -u; TZ=utc rdate badserver > /tmp/badserver-time.log

또는 더 나은 응답으로 실패한 서버 만 기록하거나 goodserver와 badserver 간 오프셋의 큰 변경 사항 만 기록하는 스크립트를 작성하십시오.