Voyage Linux(Debian 기반 배포판)를 실행 중인데 정확한 날짜를 알 수 없습니다. 내가 볼 때 /var/log/daemon.log
다음과 같은 내용이 표시됩니다.
Nov 18 11:04:07 voyage ntpdate[1676]: step time server 203.97.109.165 offset 2141299826.398106 sec
Aug 20 17:06:20 voyage ntpdate[1710]: step time server 119.47.118.129 offset 2141299826.401065 sec
Jun 28 06:36:47 voyage ntpdate[1744]: step time server 203.97.109.165 offset 2141299826.460901 sec
정확한 날짜는 6월 중순이었는데 Nov 18 11:04:07
현재는 6월 중순으로 변경되었습니다. 이 문제를 어떻게 해결할 수 있나요?
답변1
[매우 늦은 답변이지만 팔로우할 다른 사람들을 위해 추가되었습니다.]
ntpdate가 실행되는 인터페이스를 제한하는 것이 유용할 수 있지만 주요 문제는 실시간 시계 하드웨어가 작동하지 않는 것이므로 초기 오프셋이 큽니다.
fake_hwclock 패키지를 확인해 보시길 권합니다. ~에서패키지 지시:
패키지: fake-hwclock (0.5)
RTC 하드웨어가 없는 시스템에서 시스템 시계 저장/복원
일부 시스템에는 RTC(실시간 시계) 장치가 없거나 기존 하드웨어용 드라이버가 없습니다. fake-hwclock은 커널의 현재 시계(종료 시 포함)를 주기적으로 저장하고 부팅 시 이를 복원하여 시스템 시계가 최소한 실시간에 가깝게 유지되도록 하는 간단한 스크립트 세트입니다. 이렇게 하면 시스템이 1970년대로 돌아가 있다고 믿지 못하게 되어 부팅할 때마다 파일 시스템 검사를 수행해야 하는 등의 문제가 발생할 수 있습니다.
이 외에도 하드웨어가 중지되거나 다시 시작될 때 가짜 시계 "드리프트"를 처리하기 위해 NTP를 사용하는 것이 좋습니다.
답변2
해결책을 찾았습니다이 웹사이트. NTPdate는 인터페이스가 시작될 때마다 날짜를 업데이트하려고 시도합니다. 제 경우에는 시작 프로세스 중에 3번 업데이트되었습니다. 그래서 상승 시 에만 실행 /etc/network/if-up.d/ntpdate
되도록 수정하고 스크립트 상단에 다음을 추가했습니다.ntpdate
eth0
# Only update the date if eth0 goes up.
if [ "$IFACE" != eth0 ]; then
exit 0
fi