우분투 서버 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 간 오프셋의 큰 변경 사항 만 기록하는 스크립트를 작성하십시오.